我找不出爲什麼我的代碼不工作。Java:如果語句不等於打破程序
它似乎是突破如果不等於是或否的區域。
這裏是我的代碼:
public static void main(String[] args) {
// TODO code application logic here
Scanner user_input = new Scanner(System.in);
String name;
System.out.println("Hello, what is your name?");
name = user_input.next();
System.out.println("");
String name_answer;
System.out.println("Your name is " + name + ". Is this correct? (yes/no)");
name_answer = user_input.next();
System.out.println("");
if (!name_answer.equals("yes" + "no")) {
System.out.println("Answer not valid. Please input again.");
name_answer = user_input.next();
while (!name_answer.equals("yes" + "no")) {
System.out.println("Answer not valid. Please input again.");
name_answer = user_input.next(); } }
if (name_answer.equals("yes")) {
System.out.println("Thank you, " + name + ". Please proceed to the next question.");
} else if (name_answer.equals("no")) {
System.out.println("Please reinput your name correctly.");
while (name_answer.equals("no")) {
String name_again;
System.out.println("");
System.out.println("What is your correct name?");
name_again = user_input.next();
System.out.println("");
System.out.println("Your name is " + name_again + ". Is this correct? (yes/no)");
name_answer = user_input.next(); }
如果我註釋掉不-等於碼(顯示在下面)塊,程序工作。但是,在代碼塊中,程序中斷。
if (!name_answer.equals("yes" + "no")) {
System.out.println("Answer not valid. Please input again.");
name_answer = user_input.next();
while (!name_answer.equals("yes" + "no")) {
System.out.println("Answer not valid. Please input again.");
name_answer = user_input.next(); } }
我的目標是有不等於「是」或「否」來reinputted任何回答,而一個「是」或「否」帶來的節目又邁進了一步。謝謝您的幫助。
你覺得呢'「是」 +「不」'手段?你認爲「休息」是什麼意思? – shmosel
從本質上講,你的代碼要求你的**如果**和** while循環條件檢查是:如果字符串變量名稱*** name_answer ***不等於「yesno」。我不相信這是你的意圖。閱讀[Logical AND](https://www.javatpoint.com/operators-in-java)操作符,您也可以從閱讀[String.equalsIgnoreCase()](https://www.tutorialspoint .com/java/java_string_equalsignorecase.htm)方法。 – DevilsHnd
如果有人輸入「否」,然後在你問他們時輸入亂碼,該怎麼辦?你爲什麼在你的while循環的第一次迭代之外硬編碼? – Dukeling