Java程序跳过while循环
我遇到了while循环的问题。它正在编译,但它不会在while循环中输入,并跳到下一个条件。Java程序跳过while循环
public class Tr {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String name = "";
while(name.length() > 1) {
System.out.print("Enter name : ");
name = in.nextLine();
if(name.length() > 1) {
System.out.println("It needs to be greater than 1");
}
}
}
}
这是因为name
的长度为0,因此控件永远不会进入while
。您需要使用do..while
循环,使其至少执行一次,例如:
do{
System.out.print("Enter name : ");
name = in.nextLine();
if(name.length() <= 1){
System.out.println("It needs to be greater than 1");
}
}while(name.length() <= 1);
因为name.length()
总是返回0,这样你的情况不会永远是正确的。
看来你想要的逻辑是提示用户输入一个名字,并保持提示,直到输入长度大于1的名字。一个do
循环似乎合身这里:
Scanner in = new Scanner(System.in);
String name;
do {
System.out.print("Enter name with length > 1: ");
name = in.nextLine();
// you can print an optional feedback message
if (name.length() <= 1) {
System.out.println("length needs to be greater than 1");
}
} while (name.length() <= 1);
不,它仍然跳过它,如果你按下输入。我需要找到用户输入的名称是否小于1,它会向他发送错误消息,他需要重新输入名称。 – ZeroOne
(name.length()< 1) 在我们的同时,如果条件改变这种状况。
您已经定义了一个名为name的空字符串,while循环条件的条件检查名称长度是否大于1。
是的,但我需要初始化它或它不会工作。 Sry,我是新来编程,所以我不知道很多。我只需要用户不要输入比1更小的名字 – ZeroOne
u可以使用而(name.length()== 0) \t \t { \t \t是System.out.print( “输入名称:”); \t \t name = in.nextLine(); \t \t如果(name.length()> 1) \t \t { \t \t的System.out.println( “它需要大于1”); \t \t} \t \t} – Balasubramanian
如果我不进入它,它会打印错误我: 变量名可能没有初始化 – ZeroOne