Java程序在循环时跳过

时间:2017-10-19 08:22:44

标签: java while-loop

我的while循环有问题。它正在编译,但它没有进入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");
            }
        }
    }
}

5 个答案:

答案 0 :(得分:2)

这是因为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);

答案 1 :(得分:2)

您想要的逻辑似乎是提示用户输入名称,并继续提示,直到输入长度大于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);

答案 2 :(得分:0)

您的变量name已初始化为name = "";,因此name.length() == 0;

你的while条件检查长度是否大于1,并且不是这样,它会跳过。

答案 3 :(得分:0)

因为name.length()总是返回0,所以你的条件永远不会成真。

答案 4 :(得分:0)

(name.length()&lt; 1) 在我们的while和if条件下改变这个条件。

您已经定义了一个名为name的空字符串,并且while循环条件的条件检查name的长度是否大于1。