1. 程式人生 > >【Random】猜數字小遊戲案例

【Random】猜數字小遊戲案例

package com.itheima;

import java.util.Random;
import java.util.Scanner;

/*猜數字小遊戲案例 
 * 1,系統產生一個1-100之間的隨機資料,輸出這個數字是多少
 * 2,鍵盤錄入我們猜的資料
 * 3,比較這個兩個資料,用if語句實現。
 *	大了:提示大了
 *	小了:提示小了
 *	猜中了:恭喜你,猜中了
 *	4,實現多次猜資料,用到迴圈,但是不知道要猜多少次,怎麼辦呢
 *	  用While語句實現
 *	5,限定次數,只有7次猜的機會。*/
public class RandomGame02 {
	public static void main(String[] args) {
		// 先產生一個1-100的數字
		Random r = new Random();
		int randomNumber = r.nextInt(100) + 1;
		// 增加計數器,限定輸入次數
		int count = 0;
		// 開始迴圈猜測
		while (true) {
			// 輸入猜測的資料
			Scanner sc = new Scanner(System.in);
			System.out.println("請輸入您猜的數字");
			int guessNumber = sc.nextInt();
			count++;
			if (guessNumber > randomNumber) {
				System.out.println("您輸入的數字大了,還剩" + (7 - count) + "次");
} else if (guessNumber < randomNumber) { System.out.println("您輸入的數字小了,還剩" + (7 - count) + "次"); } else if (guessNumber == randomNumber) { System.out.println("恭喜您猜對了"); break; } if (count == 7) { System.out.println("您的次數已用完,請重新投幣!"); // 此處必須要加break,表示這種情況的結束,否則程式還會繼續往下執行。 break; } } } }

這個題目裡面有一些值得去完善的細節的部分,雖然我自己寫了程式碼,也改了幾次。最後還是執行輸出瞭如圖片中的結果。

我對於圖片中執行結果的“最後還剩0次”有些不太滿意,總覺得如果是這樣的話,程式不夠人性化。而且看起來很奇怪,和下面的“次數用完請重新投幣”衝突。

太傅說可以把標紅的地方拆成兩部分,一部分提示對錯,一部分提示還剩多少次,這樣就可以解決這個問題。