【发布时间】:2015-01-22 15:05:01
【问题描述】:
我正在编写一个程序,要求用户输入他的姓名、地址和电话号码。输入数据后,程序将打印数据并要求用户输入“是”或“否”来验证数据。应重复此过程,直到用户满意并回答“是”。
现在,在我的情况下,我可能以不恰当的方式在 while 循环中放置了 if-else 语句。这就是为什么它没有像预期的那样工作。 我该如何解决这个问题?
我也只尝试过要求输入用户名的提示。 但如果我想以类似的方式添加更多不同问题的提示,那我该怎么做呢?
代码:
package userinfo;
import java.util.Scanner;
public class UserInfo {
public static void main(String[] args) {
String name;
String yes = "YES";
String no = "NO";
Scanner userInput = new Scanner(System.in);
System.out.println("Enter your name:");
name = userInput.next();
System.out.println("Please varify your name by typing YES or NO");
while (true) {
String input = userInput.next();
if (input == yes) {
System.out.println("Your name is: " + name);
}
if (input == no) {
System.out.println("Enter your name again");
} else {
System.out.println("Invalid input! Enter value again:");
break;
}
}
}
}
【问题讨论】:
-
首先,把
==改成.equals,程序员看到会哭(我写这篇评论的时候哭了)。 -
第二,使用
equalsIgnoreCase。您不希望在输入是/否响应时强制用户使用特定的字母大小写。
标签: java loops if-statement while-loop do-while