簡體   English   中英

在Java中,如果前一個查詢的值為true,如何使我的程序僅詢問下一個查詢?

[英]In Java, how can I make my program only ask the next inquiry if the previous inquiry's value is true?

例如,我問一個人是否想要冰淇淋。 如果他們說“是”(或輸入1),我要它問下一個問題,“您想要哪種口味?”,但如果他們說“不”,我希望它一起跳過下一個問題,然后繼續討論任何問題。在那之后,諸如“你喜歡烤面包嗎?”

我嘗試使用if語句,但是運氣不佳。

我基本上寫道:

if (answer == 1) {
    System.out.print("Which flavour would you like?");
    flavour = keyboard.nextLine;
}
else {}

但是編譯器很煩,因為我在代碼中進一步使用了值的味道,並且似乎因為在if語句中,程序難以訪問它。 (因為在代碼中,我進一步詢問了該人選擇哪種冰淇淋口味的問題。

非常感謝。

好吧,您需要聲明flavour具有一個值,例如null:

String flavour = null;
if (answer == 1) {
    ...
}

否則,如果您嘗試從flavour讀取內容,則編譯器無法確定您是否為其賦予了值。

但是,理想情況下,您應該嘗試設計代碼,這樣很明顯,除非給定了有用的值,否則您不會使用該變量。 您說稍后在代碼中使用變量-是否確定僅在實際詢問問題時才使用它? 您可以在要求后立即使用該值嗎? 雖然提供一個像null這樣的“虛擬”值將阻止編譯器發出麻煩,但是最好是可以對代碼進行結構化,這樣一來就不需要虛擬值。

問題是,如果answer不是1則不flavour設置為任何東西。 您期望它做什么?

要解決此問題,您需要在ifelse塊之前對flavor值進行賦值。 您稍后可能需要檢查它是否合理。

如果在if語句之外聲明並初始化味覺,則應該沒問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM