본문 바로가기
JAVA

[제어문] 과제_up, down game

by amoomar 2021. 12. 23.
반응형

 

 

반복문까지의 내용을 활용하여 과제를 진행하였다. 풀이를 진행하며 랜덤의 사용또한 알 수 있다.

 

 


 

1. 과제

 

1) 요구사항

프로그래머가 미리 정답을 설정해두고 아래와 같이 진행 할 수 있도록 한다.

Q . 1~100사이의 숫자를 선택하세요. -> 70입력

    70~100사이의 숫자를 선택하세요. -> 99입력

    70~99 사이의 숫자를 선택하세요. -> 98입력

    98! 정답입니다! 총 3번만에 맞추셨습니다. 

 

 


 

2) 본인 풀이

package test2;

import java.util.Scanner;

public class game {

	public static void main(String[] args) {
		int asw = 98;
		int choice=0;
		int cnt = 0;
		int j;
		String msg = "사이의 숫자를 하나 선택하세요.";
		Scanner sc = new Scanner(System.in);

		for(int i=1; i<101; i++) {
			i=100;
			System.out.println("1" + "~" + i + msg);
		}

		while(true) {
			choice = sc.nextInt();
			cnt++;

			if(choice==asw) {
				System.out.println(asw + "!! " + "정답!"+ cnt + "번 만에 맞추셨습니다.");
			}else if (choice<asw) {
				for(j=choice; j<101; j++) {
					j=100;
					System.out.println(choice +"~"+ j + msg);
				}
			}else {
				for(j=1; j<=choice; j++) {
					j = choice - (choice-1);
					System.out.println( j + "~" + choice + msg);
					break;
				}
			}

		} // while문 닫기

	}
}

 

[출력화면 : -> 입력]

 

1~100사이의 숫자를 하나 선택하세요.
99
1~99사이의 숫자를 하나 선택하세요.
99
1~99사이의 숫자를 하나 선택하세요.
60
60~100사이의 숫자를 하나 선택하세요.
70
70~100사이의 숫자를 하나 선택하세요.
54
54~100사이의 숫자를 하나 선택하세요.
98
98!! 정답!6번 만에 맞추셨습니다.

 

 

 

 


 

 

3) 심화

 

: 유효성검사 진행

 

package class01;

import java.util.Scanner;

public class Test01 {

   public static void main(String[] args) {
      Scanner sc=new Scanner(System.in);
      int ans=44;
      int L=1;
      int H=100;
      int cnt=0;
      while(true) { // [수행횟수] 불분명하여 while문 사용!
         System.out.print(L+"~"+H+"중에서 숫자하나 선택하세요. ");
         int num=sc.nextInt();
         if(num<L||H<num) {
            System.out.println("잘못된 숫자를 입력하셨습니다. 다시 입력하세요.");
            continue;
         }
         cnt++;
         if(num<ans) {
            System.out.println(num+"보다 큽니다.");
            L=num+1;
         }
         else if(ans<num) {
            System.out.println(num+"보다 작습니다.");
            H=num-1;
         }
         else {
            System.out.println(num+"! 정답입니다!!! 총 "+cnt+"번만에 맞추셨습니다.");
            break; // 무한루프는 반드시 종료조건을 필요로함!
         }
      }
   }

}

 

 


 

 

2. Random

 

1) 선언과 사용

// 1. 초기화 진행
Random r = new Random(); 

// 2. 사용
int asw = r.nextInt(10); // 0 <= r >10
int asw = r.nextInt(100)+1; // 1~100까지 출력

 

반응형

'JAVA' 카테고리의 다른 글

[알고리즘] 선택정렬  (0) 2021.12.26
[반복문] 랜덤과 중복제거  (0) 2021.12.23
[제어문] 반복문  (0) 2021.12.22
[제어문] 연산자 & 조건문 & 입력함수  (0) 2021.12.21
[변수] 출력코드와 변수  (0) 2021.12.21