4

私は割り当てのためにコードの一部をデバッグしようとしています(私はまだ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"));
}

入力文字列で常に重複ローカル変数エラーが発生します。

どんな助けでも大歓迎です!

4

6 に答える 6

13

交換

String input = keyboard.next();

input = keyboard.next();

String変数名の前にa を付けると、それは宣言です。また、スコープ内で変数名を宣言できるのは 1 回だけです。

于 2012-08-06T07:12:00.360 に答える
5

input変数を 2 回宣言しました。この行を変更する必要があります。

String input = keyboard.next();

これに:

input = keyboard.next();

また、このコードはおそらく機能しません。

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

Java では、文字列はメソッドを使用して比較される.equals()ため、次の行:

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

これに変更する必要があります:

((!input.equals("a")) || (!input.equals("b")))
于 2012-08-06T07:12:46.967 に答える
1

Yoy はString input宣言を複製しました。一回だけで十分です。

于 2012-08-06T07:11:16.757 に答える
0

input変数を2回宣言しました。メソッド内でmain宣言するのinputは1回だけです。内部で次のコードを使用しますdo {}

input = keyboard.next(); instead of  String input = keyboard.next();
于 2012-08-06T07:17:24.730 に答える
0
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"));
}

do{}問題は、内部で入力を再度宣言していることです。だからそれはただあるべきです

input=keyboard.next();

于 2012-08-06T07:12:05.540 に答える
0

私の知る限り、これは変数を非表示にする方法ではありません。

ここに私が意味するものがあります

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"));
}
于 2012-08-06T07:27:14.260 に答える