Java错误,重复的局部变量

Rya*_*yan 3 java variables local duplicates

我正在尝试为一个任务调试一部分代码(我还是Java的新手)并且已经通过很多资源来解决这个冲突,但仍然无法解决这个问题.

public static void main(String [] args){
    Scanner keyboard = new Scanner(System.in);
    String input = null;
    do
    {
      System.out.println("Enter 'A' for option A or 'B' for option B.");
      String input = keyboard.next();
      input.toLowerCase();
      input.charAt(0);  
    }
    while ((input != "a") || (input != "b"));
}
Run Code Online (Sandbox Code Playgroud)

我总是使用输入字符串获得重复的局部变量错误.

任何帮助将不胜感激!

jue*_*n d 12

更换

String input = keyboard.next();
Run Code Online (Sandbox Code Playgroud)

input = keyboard.next();
Run Code Online (Sandbox Code Playgroud)

如果你String在变量名之前放一个它就是一个声明.并且您可以在范围中仅声明一次变量名称.


npi*_*nti 5

您已声明该input变量两次。您需要更改此行:

String input = keyboard.next();
Run Code Online (Sandbox Code Playgroud)

对此:

input = keyboard.next();
Run Code Online (Sandbox Code Playgroud)

另外,这段代码很可能不起作用:

((input != "a") || (input != "b"))
Run Code Online (Sandbox Code Playgroud)

在Java中,字符串是使用.equals()方法进行比较的,所以这一行:

((input != "a") || (input != "b"))
Run Code Online (Sandbox Code Playgroud)

需要改成这样:

((!input.equals("a")) || (!input.equals("b")))
Run Code Online (Sandbox Code Playgroud)