を宣言ので、これは奇妙なものです、私は、コード自体はかなり役に立たないですけど、私はエラーを取得するなぜ私は思ったんだけど何:役に立たないローカル変数に
私はいくつかのコードを書いていた、私はこれを書いていました:
if(scan.hasNextInt())
int row = scan.nextInt();
は、私はとにかくif
過去row
を使用することはできませんので、明らかに、これは無意味です、一度変数のスコープについて考えていませんでした。
if(scan.hasNextInt()) {
int row = scan.nextInt();
}
それは罰金コンパイルします:私はちょうどかどうかを確認するためにことを変更した場合今
> javac hw.java
hw.java:25: '.class' expected
int row = scan.nextInt();
^
hw.java:25: not a statement
int row = scan.nextInt();
^
hw.java:25: illegal start of expression
int row = scan.nextInt();
^
hw.java:25: ';' expected
int row = scan.nextInt();
^
:私は私がしたエラーを得た理由を私は何を得ることはありませんことです。私は印象の下にある場合は、if
の下に1行があれば、中括弧はオプション...明らかに他の考慮事項もあるか、または両方ともコンパイルまたは失敗するでしょう。
誰かが私に説明したり、中括弧なしのif
の条件でローカル変数を宣言できない理由を説明する文書を指摘できますか?
EDIT:ここでは、フル機能です:
public static char getinput() {
System.out.println("Where do you want to go? (row column)");
Scanner scan = new Scanner(System.in);
if(scan.hasNextInt())
int row = scan.nextInt();
String input = scan.next();
System.out.println(input);
return 'a';
}
それは 'もし'? –
ここに完全なコードを書いてください。 –
@NikolayKuznetsov - 編集を参照してください。 – Mike