我找不出为什么我的代码不工作。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