java声明局部变量,java – 声明一个无用的局部变量

所以这是一个奇怪的,我知道代码本身是相当无用的,但我想知道为什么我得到错误:

我在写一些代码,我写了这个:

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(scan.hasNextInt()) {

int row = scan.nextInt();

}

它会编译好的.我的印象是,如果有一行,如果大括号是可选的…显然还有其他考虑,或两者都编译或失败.

有人可以向我解释,或指出一个文件,解释为什么我不能在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';

}

你可能感兴趣的:(java声明局部变量)