JAVA 프로그래밍

문제

5번의 기회 내에 사용자가 임의의 숫자를 맞출 수 있도록, 그 숫자와 입력 숫자를 비교하여 Up 또는 Down을 출력하는 문제입니다 이를 해결하는 프로그램을 작성하세요 
1~100 사이의 숫자를 입력하세요: 1000
허용 범위를 벗어났습니다. 
1~100 사이의 숫자를 입력하세요: 50
Up!
기회는 4번 남았습니다.
1~100 사이의 숫자를 입력하세요: 75
Success!!  
정답은 75입니다. 

1~100 사이의 숫자를 입력하세요: 50
Success!!  
정답은 50입니다. 

1~100 사이의 숫자를 입력하세요: 50
Up!
기회는 4번 남았습니다.
1~100 사이의 숫자를 입력하세요: 75
Down!
기회는 3번 남았습니다.
1~100 사이의 숫자를 입력하세요: 65
Down!
기회는 2번 남았습니다.
1~100 사이의 숫자를 입력하세요: 60
Down!
기회는 1번 남았습니다.
1~100 사이의 숫자를 입력하세요: 55
Down!
기회는 0번 남았습니다.
정답은 52입니다. 

알고리즘 설계

프로그램 시작 
   임의의 수 숨기기
   5번의 기회 내에서 임의의 수 맞히기
      숫자 입력 받기
         입력값이 허용범위 벗어나면 다시 입력
      비교 결과 출력
         첫째 임의의 수를 맞히면 Success!! 출력 후 종료
         둘째 임의의 수가 입력값보다 크면 Up! 출력
         셋째 임의의 수가 입력값보다 작으면 Down! 출력
프로그램 종료

프로그램 구현

     
 
 ※ 단계별 점검: A키(이전), D키(다음) 
 
	// 파일명 : ./Chapter08/UpAndDown.java
	import java.util.Scanner;
		  
	public class UpAndDown
	{
		// 프로그램 시작 
1		public static void main( String[] args ) {
			Scanner scan = new Scanner( System.in );
			// 임의의 수 숨기기 
			int number = (int)( Math.random() * 100 ) + 1;
		  
			// 5번의 기회 내에서 임의의 수 맞히기 
			int chance = 5;
2			while( --chance >= 0 ) {
				// 숫자 입력 받기 
				System.out.print( "1~100 사이의 숫자를 입력하세요: " );
				int user = scan.nextInt();
		  
				// 입력값이 허용범위 벗어나면 다시 입력 
3				if ( ( user < 1 ) || ( 100 < user ) ) {
					System.out.println( "허용 범위를 벗어났습니다." );
4					chance++;
5					continue;
				}
				// 비교 결과 출력 
				// 첫째 임의의 수를 맞히면 Success!! 출력 후 종료 
6				else if ( number == user ) {
					System.out.println( "Success!!" );
7					break;
				}
				// 둘째 임의의 수가 입력값보다 크면 Up! 출력 
8				else if ( number > user ) {
9					System.out.println( "Up!" );
				}
				// 셋째 임의의 수가 입력값보다 작으면 Down! 출력 
10				else if ( number < user ) {
11					System.out.println( "Down!" );
				}
		  
12				System.out.println( "기회는 " + chance + "번 남았습니다." );
			}
13			System.out.println( "정답은 " + number + "입니다." );
			scan.close();
		// 프로그램 종료 
14		}
	}

실행 순서 확인