Java error, duplicate local variable

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-17 20:29:56

问题


I'm trying to debug a portion of code for an assignment (I'm still very new to Java) and have combed through many resources to solve this conflict but still can't quite work it out.

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"));
}

I always get a Duplicate Local Variable error with the input String.

Any help would be greatly appreciated!


回答1:


replace

String input = keyboard.next();

with

input = keyboard.next();

If you put a String before the variable name it is a declaration. And you can declare a variable name only once in a scope.




回答2:


You have declared the input variable twice. You will need to change this line:

String input = keyboard.next();

to this:

input = keyboard.next();

Also, this code will most likely not work:

((input != "a") || (input != "b"))

In Java, Strings are compared using the .equals() method, so this line:

((input != "a") || (input != "b"))

needs to be changed to this:

((!input.equals("a")) || (!input.equals("b")))



回答3:


Yoy've duplicated String input declaration. Once is enough.




回答4:


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.");
      input = keyboard.next();
      input.toLowerCase();
      input.charAt(0);  
    }
    while ((input != "a") || (input != "b"));
}

The problem is you are declaring input inside do{} again. So it should just be

input=keyboard.next();




回答5:


As far as I know, this is not how you hide the variables.

Here is what I mean

private static String input = null;    
public static void main(String [] args){
    Scanner keyboard = new Scanner(System.in);
    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"));
}



回答6:


You have declared the input variable twice . Inside the main method declare input only once. Use the following code inside do {}:

input = keyboard.next(); instead of  String input = keyboard.next();


来源:https://stackoverflow.com/questions/11823885/java-error-duplicate-local-variable

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!