这个while循环中的错误是什么?

时间:2016-06-03 20:22:27

标签: java

我正在用一段旧代码建模一个while循环,因为我有点忘了怎么做。这是旧篇幅:

    Scanner s2 = new Scanner(System.in);
    Q1 = s2.nextDouble();
            while (Q1 < 1 || Q1 > 5) {
                System.out.println("");
                System.out.println("ERROR: Please enter a number between 1 and 5.");
                System.out.println("");
                System.out.println(question1);
                Q1 = s2.nextDouble();
            }

这很简单。这是我现在写的那篇文章:

System.out.println("Welcome to " + appName + "!");
System.out.println("To begin, please select a username.");

Scanner usernameScanner = new Scanner(System.in);
String username = usernameScanner.nextLine();

System.out.println("Your username will be " + username + ".");
System.out.println("Is that correct?");

while(username.length() < 3){
    System.out.println("Error: Your username must be more than 3 characters.");
    System.out.println("Please select a username.");
    String username = usernameScanner.nextLine();

}

我告诉我这个错误:

“线程中的异常”主“java.lang.Error:未解决的编译问题:重复的本地变量用户名”

我认为修复很简单,但我很困惑。我不是在第一件中重新定义局部变量吗?为什么它不能在第二个工作?

提前谢谢。

1 个答案:

答案 0 :(得分:7)

在循环while(username.length() < 3)中,行String username = usernameScanner.nextLine();需要更改为username = usernameScanner.nextLine();。您没有修改username中的值,而是声明了一个具有相同名称的新变量,从而导致错误。