明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

Java咖啡館——編寫猜數(shù)字游戲(4)

[摘要]首先,while語句判斷返回一個布爾值的expression表達(dá)式,如果返回值為true,則執(zhí)行下面語句,之后再測試expression表達(dá)式再執(zhí)行語句,以此往復(fù),直到expression表達(dá)式返回...

    

  首先,while語句判斷返回一個布爾值的expression表達(dá)式,如果返回值為true,則執(zhí)行下面語句,之后再測試expression表達(dá)式再執(zhí)行語句,以此往復(fù),直到expression表達(dá)式返回false為止。

do-while語句與while語句非常相似,語法是:

do {
statement(s)
} while ( expression );

  與while語句在循環(huán)頂部判斷表達(dá)式真假值不同,do-while語句在底部判斷,從而,do-while語句至少執(zhí)行一次內(nèi)部的代碼。

  下面看看猜數(shù)字游戲的主體部分:

// 記錄玩家猜測的次數(shù)
int counter = 0;
System.out.println("我心里有一個0到99之間的整數(shù),你猜是什么?");

do {
try {
// 獲取玩家的輸入
guess = Integer.parseInt(input.readLine());
} catch (NumberFormatException e) {
// 如果玩家不是輸入一個合法的整數(shù),則讓他重新輸入
System.out.println("請輸入一個0-99之間的整數(shù)!");
continue;
} catch (IOException e) {
System.out.println("程序發(fā)生異常錯誤將被關(guān)閉!");
e.printStackTrace();
}

// 對玩家的輸入進(jìn)行判斷
if (guess > number)
System.out.println("大了點(diǎn),再猜!");
if (guess < number)
System.out.println("小了點(diǎn),再試試!");

// 計數(shù)器增加一
counter++;
} while (guess != number);

  首先定義了一個counter變量來記錄玩家猜測的次數(shù),并直接初始化為0。在打印一行游戲提示以后,便開始一個do-while語句。

  在do-while語句中,首先用異常處理語句獲取玩家的輸入,如果玩家輸入不合法,提示以后用continue語句從頭重新執(zhí)行循環(huán)語句,等待玩家的輸入。從而,guess變量一定包含一個合法的整數(shù)。之后要對玩家的輸入進(jìn)行判斷。如果玩家的猜測太大或者太小,都做出提示。接著把計數(shù)器增加1,表示玩家做過一次猜測。最后便是do-while語句的判斷:當(dāng)玩家猜測的數(shù)字和隨機(jī)產(chǎn)生的答案不同,則再次進(jìn)入循環(huán),否則便結(jié)束循環(huán),執(zhí)行下面的代碼。

  最后提醒一句,別忘記用Eclipse的Alt+/快捷鍵幫助編寫do-while語句哦!

  switch語句

  switch語句是基于整型表達(dá)式的條件判斷語句,猜數(shù)字用它來進(jìn)行成績判斷:

// 判斷成績
switch (counter) {
case 1:
System.out.println("東漸……快來看上帝……");
break;
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
System.out.println("這么快就猜對了,你很smart!");
break;
default:
System.out.println("猜了半天才猜出來,小同志,尚須努力!");
break;
}

  可以看出,switch語句是和若干case語句和一個default語句搭配使用的。代碼中的switch語句用counter變量的值進(jìn)行判斷。當(dāng)counter的值為1時,便執(zhí)行case 1里面的語句,即打印“東漸……快來看上帝……”的字樣,隨后的break語句表示整個switch語句執(zhí)行到這里結(jié)束了。當(dāng)counter的值為2時,便執(zhí)行case 2里面的語句?梢园l(fā)現(xiàn)case 2到case 6都沒有break語句,這表示依次執(zhí)行下面的語句,從而counter的值為2至7時,都打印“這么快就猜對了,你很smart。 弊謽。當(dāng)counter的值不是1至7時,便執(zhí)行default語句,打印鼓勵的話語。

  Just Do It

  想想看怎樣編寫一個會玩猜數(shù)字游戲的Java程序呢?

  小結(jié)

  這是Java咖啡館開張以來最漫長的一回,涉及的知識面很廣,希望你能夠感到充實而不是煩瑣。此外,自己動手編寫幾個小程序是最好的練習(xí)方法。Eclipse是良師益友,有什么問題都會及時通知你,有時還會附上解決方法,希望你善加利用,不要辜負(fù)一片心意哦。