๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ๏ธ/Java

[Java] Chapter03: ์ˆซ์ž ๋งž์ถ”๊ธฐ ๊ฒŒ์ž„ (Up&Down)

by HanaV 2023. 3. 19.
728x90

์ปดํ“จํ„ฐ๊ฐ€ ๋ชฐ๋ž˜ ๊ณ ๋ฅธ ์ˆซ์ž(1~99)๋ฅผ ๋งž์ถ”๋Š” ๊ฒŒ์ž„์„ ๋งŒ๋“ค์–ด๋ณด์ž. ์ž…๋ ฅ๋œ ์ˆซ์ž์™€ ๊ณ ๋ฅธ ์ˆซ์ž๋ฅผ ๋น„๊ตํ•ด ํฐ์ง€ ์ž‘์€์ง€๋Š” ์•Œ๋ ค์ฃผ๊ณ , ๊ฒŒ์ž„์ด ๋๋‚˜๋ฉด ๊ฒŒ์ž„์„ ๋ฐ˜๋ณตํ•  ๊ฒƒ์ธ์ง€ ๋ฌผ์–ด๋ณธ๋‹ค.

 

1. ์šฐ์„  ์ปดํ“จํ„ฐ๊ฐ€ ์ˆซ์ž๋ฅผ ๊ณจ๋ผ์•ผํ•œ๋‹ค. 

1-1. ๋žœ๋ค ์ˆซ์ž๋ฅผ ๊ณ ๋ฅด๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

- Math.random() ํ•จ์ˆ˜: 0~1๊นŒ์ง€์˜ ๋ฌด์ž‘์œ„ ์‹ค์ˆ˜๊ฐ’์ด ํ•˜๋‚˜ ๋ฆฌํ„ด๋œ๋‹ค. ์ •์ˆ˜ํ˜•์œผ๋กœ ํ™œ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” ์ •์ˆ˜๋ฅผ ๊ณฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
- Random ํด๋ž˜์Šค: import java.util.Random ์„ ํ•œ ํ›„, new๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์ค˜์•ผ ํ•œ๋‹ค.

int number = (int) (Math.random()*99) + 1;

2. ์ด์ œ ๋‚ด๊ฐ€ ์ˆซ์ž๋ฅผ ๋งž์ถฐ์•ผํ•˜๋ฏ€๋กœ number๊ณผ ๋‚ด ์ˆซ์ž๊ฐ€ ๊ฐ™์„ ๋•Œ๊นŒ์ง€ ๋‚ด ์ˆซ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.

2-1. ๊ฐ™์„'๋•Œ๊นŒ์ง€' ๋ฐ˜๋ณต๋˜์–ด์•ผํ•˜๋ฏ€๋กœ while(true)๋ฌธ์„ ์‚ฌ์šฉํ•œ๋‹ค. 
2-2. ๋‚ด ์ˆซ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›์„ ๋ณ€์ˆ˜์™€ Scanner ํ•จ์ˆ˜๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

int guess = scanner.nextInt();

2-3. '๊ฐ™์€์ง€'๋ฅผ ํŒ๋ณ„ํ•ด์•ผํ•˜๋ฏ€๋กœ if๋ฌธ์„ ์‚ฌ์šฉํ•ด ๋” ํฐ์ง€, ์ž‘์€์ง€, ๊ฐ™์€์ง€๋ฅผ ํŒ๋ณ„ํ•œ๋‹ค. ๊ฐ™์œผ๋ฉด while๋ฌธ ํƒˆ์ถœํ•œ๋‹ค.

				if (number > guess) {
					System.out.println("UP");
					i++;
					continue;
				}
				else if (number < guess) {
					System.out.println("DOWN");
					i++;
					continue;
				}
				else {
					System.out.println("์ •๋‹ต!");
					break;
					}

3. ์ •๋‹ต์ธ ๊ฒฝ์šฐ, ๋‹ค์‹œ ๋ฐ˜๋ณตํ•  ์ง€ ๋ฌผ์–ด๋ณธ๋‹ค.

3-1. ๋ฐ˜๋ณตํ•ด์•ผํ•˜๋ฏ€๋กœ ์ด์ „ ์ฝ”๋“œ๋ฅผ ์ „์ฒด while(true)์„ ์ ์šฉํ•ด y๋ฉด continue, n๋ฉด break๋กœ while ๋ฌธ์„ ํƒˆ์ถœํ•œ๋‹ค.
3-2. Stringํƒ€์ž…์€ a.equals(" ") ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

			System.out.println("๋‹ค์‹œ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? (y/n)");
			String answer = scanner.next();
			if (answer.equals("y")) {
				continue;
			}
			else if (answer.equals("n")) {
				System.out.print("์ˆซ์ž๋งž์ถ”๊ธฐ ๊ฒŒ์ž„์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค");
				break;
			}

 

 

์ „์ฒด ์ฝ”๋“œ

package Chapter03;

import java.util.Scanner;

public class OpenChallenge3 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		
		while (true) {
			int number = (int) (Math.random()*99) + 1;
			int i = 1;
		
			System.out.println("์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋งž์ถ”์–ด ๋ณด์„ธ์š”! \n0~99");
			
			while (true) {
				System.out.print(i + "๋ฒˆ์งธ ์‹œ๋„>>");
				int guess = scanner.nextInt();
				
				if (number > guess) {
					System.out.println("UP");
					i++;
					continue;
				}
				else if (number < guess) {
					System.out.println("DOWN");
					i++;
					continue;
				}
				else {
					System.out.println("์ •๋‹ต!");
					break;
					}
					
				}
			System.out.println("๋‹ค์‹œ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? (y/n)");
			String answer = scanner.next();
			if (answer.equals("y")) {
				continue;
			}
			else if (answer.equals("n")) {
				System.out.print("์ˆซ์ž๋งž์ถ”๊ธฐ ๊ฒŒ์ž„์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค");
				break;
			}
				
		}//game ๊ด„ํ˜ธ

		scanner.close();
	}
}

Console

์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋งž์ถ”์–ด ๋ณด์„ธ์š”! 
0~99
1๋ฒˆ์งธ ์‹œ๋„>>45
DOWN
2๋ฒˆ์งธ ์‹œ๋„>>23
DOWN
3๋ฒˆ์งธ ์‹œ๋„>>10
DOWN
4๋ฒˆ์งธ ์‹œ๋„>>5
UP
5๋ฒˆ์งธ ์‹œ๋„>>7
UP
6๋ฒˆ์งธ ์‹œ๋„>>9
DOWN
7๋ฒˆ์งธ ์‹œ๋„>>8
์ •๋‹ต!
๋‹ค์‹œ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? (y/n)
y
์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋งž์ถ”์–ด ๋ณด์„ธ์š”! 
0~99
1๋ฒˆ์งธ ์‹œ๋„>>56
UP
2๋ฒˆ์งธ ์‹œ๋„>>87
UP
3๋ฒˆ์งธ ์‹œ๋„>>97
DOWN
4๋ฒˆ์งธ ์‹œ๋„>>93
DOWN
5๋ฒˆ์งธ ์‹œ๋„>>90
DOWN
6๋ฒˆ์งธ ์‹œ๋„>>88
UP
7๋ฒˆ์งธ ์‹œ๋„>>89
์ •๋‹ต!
๋‹ค์‹œ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? (y/n)
n
์ˆซ์ž๋งž์ถ”๊ธฐ ๊ฒŒ์ž„์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค

 

728x90

"); wcs_do();