声明无用的局部变量
2022-09-03 12:44:36
所以这是一个奇怪的,我知道代码本身是相当无用的,但我想知道为什么我得到这个错误:
我正在写一些代码,我写了这个:
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();
}
它将编译良好。我的印象是,如果大括号下有1行是可选的......显然还有其他考虑因素,或者两者都会编译或失败。if
有人可以向我解释,或者指向我一个文档,解释为什么我不能在没有大括号的情况下在条件下声明局部变量?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';
}