Java while循环中的错误是什么?

Java while循环中的错误是什么?,java,Java,我正在根据我已有的一段旧代码建模一个while循环,因为我有点忘了怎么做。这是老一套: Scanner s2 = new Scanner(System.in); Q1 = s2.nextDouble(); while (Q1 < 1 || Q1 > 5) { System.out.println(""); System.out.println("ERROR: Please ente

我正在根据我已有的一段旧代码建模一个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();
            }
Scanner s2=新的扫描仪(System.in);
Q1=s2.nextDouble();
而(Q1<1 | | Q1>5){
System.out.println(“”);
System.out.println(“错误:请输入一个介于1和5之间的数字”);
System.out.println(“”);
系统输出打印(问题1);
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();

}
System.out.println(“欢迎使用”+appName+“!”);
System.out.println(“要开始,请选择一个用户名。”);
Scanner usernameScanner=新扫描仪(System.in);
字符串username=usernameScanner.nextLine();
System.out.println(“您的用户名将是“+username+”);
System.out.println(“正确吗?”);
while(username.length()<3){
System.out.println(“错误:您的用户名必须超过3个字符。”);
System.out.println(“请选择用户名”);
字符串username=usernameScanner.nextLine();
}
我在告诉我以下内容时出错:

线程“main”java.lang中出现异常。错误:未解决的编译问题:重复的局部变量用户名

我以为修复起来很简单,但我很困惑。我不是在第一部分重新定义了一个局部变量吗?为什么它在第二种情况下不起作用


提前感谢。

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

您已经定义了两次username。一次在循环外,一次在循环内。声明一次类型,否则使用变量名。当出现编译错误时,为什么还要执行代码?请注意编译器-在您尝试执行代码之前修复所有错误,否则您肯定会得到该异常。