while문 심화 문제 풀어보기

김경한·2022년 10월 18일
0

java

목록 보기
12/15

While문을 문제 풀기

  1. 문제
    [문제 출제2: 각각의 이름에 Scanner로 점수를 입력받을 수 있게 할 것.][문제 출제3: 예시) 1번을 누르면 규민, 2번을 누르면 민영을 선택할 수 있게 하고, 그 둘의 점수를 각각 비교하게 할 것.]
    [문제 출제3: 입력받은 점수를 토대로 점수를 각각 비교하여, 규민이 크면 규민이 큽니다. 라는 문장이 뜨게 할 것.]
    규민과 민영과 철수와 영희가 있다.
    규민은 점수를 ?를 받았고,
    민영은 점수를 ?를 받았고,
    철수는 점수를 ?를 받았고,
    영희는 점수를 ?를 받았다.
    다음 중 누구와 비교해도 누가 누구보다 큰 점수를 받았는지 쓸 수 있도록 해보아라.

    첫 번째 사람 이름 : 경민
    경민이 받은 점수 입력 : 100
    두 번째 사람 이름 : 홍길동
    홍길동이 받은 점수 입력 : 90
    세 번째 사람 이름 : 철수
    철수가 받은 점수 입력 : 80
    네 번째 사람 이름 : 영희
    영희가 받은 점수 입력 : 70
    1.경민
    2.홍길동
    3.철수
    4.영희
    5.종료
    누구와 누구를 대조하시겠습니까?
    첫 번째 사람 입력 : 1
    두 번째 사람 입력 : 3
    시스템 : 경민의 점수가 철수의 점수보다 더 큽니다!
    1.경민
    2.홍길동
    3.철수
    4.영희
    5. 종료.
    누구와 누구를 대조하시겠습니까?
    첫 번째 사람 입력 : 3
    두 번째 사람 입력 : 1
    시스템 : 경민의 점수가 철수의 점수보다 더 큽니다!
    종료는 
    첫 번째 사람 입력 : 5
    두 번째 사람 입력 : 5
    처럼 둘 다 5번을 누른 경우 나타난다.
    만약, 둘 중 하나라도 5번이 아니라면
    잘못된 입력입니다! 라는 말이 나타나야 한다.

    코딩

    Scanner sc = new Scanner(System.in);
         System.out.println("이름을 입력해주세요 : ");
                 String name1 = sc.next();
                 System.out.println(name1 +" 점수를 입력해주세요 : ");
                 int a = sc.nextInt();
                 System.out.println("========================");
                 System.out.println("이름을 입력해주세요 : ");
                 String name2 = sc.next();
                 System.out.println(name2+" 점수를 입력해주세요");
                 int b = sc.nextInt();
                 System.out.println("========================");
                 System.out.println("이름을 입력해주세요 ");
                 String name3 = sc.next();
                 System.out.println(name3+"점수를 입력해주세요");
                 int c = sc.nextInt();
                 System.out.println("========================");
                 System.out.println("이름을 입력해주세요 ");
                 String name4 = sc.next();
                 System.out.println(name4+" 점수를 입력해주세요");
                 int d = sc.nextInt();
    
                 System.out.println("1. "+ name1 +" 점수를" + a + "받았고,");
                 System.out.println("2. "+ name2 +" 점수를" + b + "받았고,");
                 System.out.println("3. "+ name3 +" 점수를" + c + "받았고,");
                 System.out.println("4. "+ name4 +" 점수를" + d + "받았고,");
                 System.out.println("누가 점수가 큰지 결정 ");
    
                 int a1 = 1;
                 int b1 = 2;
                 int c1 = 3;
                 int d1 = 4;
                 int exit = 5;
    
                 System.out.println(a1+name1);
                 System.out.println(b1+name2);
                 System.out.println(c1+name3);
                 System.out.println(d1+name4);
                 System.out.println("종료");
                 while(true){
                 System.out.println("누구와 누구를 대조하시겠습니까?");
                 System.out.println("첫번째 사람 입력");
                 int num1 = sc.nextInt();
                 System.out.println("두번째 사람 입력");
                 int num2 = sc.nextInt();
    
                 if (num1 == a1) {
                 num1 = a;
                 }
                 if (num1 == b1) {
                 num1 = b;
                 }
                 if (num1 == c1) {
                 num1 = c;
                 }
                 if (num1 == d1) {
                 num1 = d;
                 }
                 if (num1 == exit) {
                 num1 = exit;
                 }
                 if (num2 == a1) {
                 num2 = a;
                 }
                 if (num2 == b1) {
                 num2 = b;
                 }
                 if (num2 == c1) {
                 num2 = c;
                 }
                 if (num2 == d1) {
                 num2 = d;
                 }
                 if (num2 == exit) {
                 num2 = exit;
                 }
                 if (num1 < num2) {
         if (num1 ==a) {
         System.out.println(name2+"점수가"+name1 + "보다 큽니다.");
         }
         if (num1 ==b) {
         System.out.println(name2+"점수가"+name1 + "보다 큽니다.");
         }
         if (num1 ==c) {
         System.out.println(name2+"점수가"+name1 + "보다 큽니다.");
         }
         if (num1 ==d) {
         System.out.println(name2+"점수가"+name1 + "보다 큽니다.");
         }
         } else if(num1 == 5 || num2 == 5) {
         System.out.println("종료 합니다.");
         break;
         } else{
         if (num2 ==a) {
         System.out.println(name1+"점수가"+name2 + "보다 큽니다.");
         }
         if (num2 ==b) {
         System.out.println(name1+"점수가"+name2 + "보다 큽니다.");
         }
         if (num2 ==c) {
         System.out.println(name1+"점수가"+name2 + "보다 큽니다.");
         }
         if (num2 ==d) {
         System.out.println(name1+"점수가"+name2 + "보다 큽니다.");
         }
         }
문제 풀이 
a1 ~ d1 까지 해당 순서에 맞게 4개의 값을 각각 지정해주었다 그리고 나서 
첫번째 두번째에 값을 적어주는데 여기서 몇번째 사람인지 순서로 받아야 했기 때문에
그 첫번째면 내가 해준 순서 a1으로 num1이 입력한 수와 일치한다면 해당 점수에 값을 
들어가도록 했다. 
그리고 나서 점수 비교하여 출력 해주었다 
여기서 while문을 사용해주었는데 내가 원하는 값에 종료를 해주면 끝나는 시으로 elseif
사용하여 내가 원하는 값에 종료 할 수 있도록 진행함 

 
profile
마스터 요다의 광선검

0개의 댓글