我的老師要求我們在Java 8中創建一個魔術8球程序。我們必須使用3個方法,一個主要的,一個處理和一個輸出,我們需要在這些方法之間傳遞參數。輸出需要使用switch
語句,我們需要在那裏有一個while
語句,並且需要隨機生成答案。我有所需的一切,但是當我嘗試運行該程序時,它被卡在while循環中,我不知道我做錯了什麼。 這是我有:我有一個完整的循環,不知道如何使它停止
import java.util.*;
public class Magic8Ball {
public static void main(String[]args) {
Scanner input = new Scanner(System.in);
System.out.print("Would you like to ask a question? Y or N: ");
char answer = input.next().charAt(0);
char Y = Character.toUpperCase(answer);
process(answer, Y);
}
public static void process(char a, char Yes) {
if (a != Yes) {
System.out.println("Thank you, goodbye.");
} else {
while(a==Yes) {
System.out.print("Ask your question: ");
Random random = new Random();
int ran = random.nextInt(8-1+1)+1;
output(ran);
}
}
}
Public static int output(int r) {
switch (r) {
case 1: System.out.println("Out of memory, try again later); break;
case 2: System.out.println("The probability matrix supports you."); break;
case 3: System.out.println("That does not compute."); break;
case 4: System.out.println("System error, try again later"); break;
case 5: System.out.println("Siri says yes."); break;
case 6: System.out.println("The asnwer could not be found on the internet."); break;
case 7: System.out.println("Wikilinks claims it is true."); break;
case 8: System.out.println("Siri says no."); break;
default: System.out.println("The system is not responding, try again later"); break;
}
return r;
}
}
你沒有更新循環既不'了''也不Yes'合適的解決方案。 – MikeCAT
當你想退出時,你必須更新循環內'a'的值,否則將會是一個無限循環 –
條件是'while(a == Yes)',你永遠不會改變'a'或「是」。 (順便說一句,我不確定你爲什麼要做這個測試,它會檢查輸入是否等於輸入的大寫版本。) – usr2564301