所以這是一個奇怪的一個,我知道代碼本身是很沒用,但是我不知道爲什麼我得到的錯誤:聲明無用局部變量
我正在寫一些代碼,我寫了這:
if(scan.hasNextInt())
int row = scan.nextInt();
不是當時想着變量的作用域,顯然這是無用的,因爲我不能使用row
過去if
反正。我不明白的是爲什麼我得到了我做了錯誤:
> 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(scan.hasNextInt()) {
int row = scan.nextInt();
}
這將彙編的罰款。我的印象是,如果if
下有1行,大括號是可選的......顯然還有其他考慮因素,或者兩者都可以編譯或失敗。
有人可以向我解釋,或者指向一個文檔,解釋爲什麼我不能在不帶大括號的情況下在條件爲if
下聲明局部變量?
編輯:下面是完整的功能:
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