为什么这样有语法错误if(message != null)
String changedmessage = message.toUpperCase();
如果把changedmessage提前申明成局部变量或者这样if(message != null) {
String changedmessage = message.toUpperCase();
}
就没语法错误呢。
String changedmessage = message.toUpperCase();
如果把changedmessage提前申明成局部变量或者这样if(message != null) {
String changedmessage = message.toUpperCase();
}
就没语法错误呢。
int aaaaa = message.length();这样写 一样报错
这里这句相当于是两句:
String changedmessage=null;
changedmessage=message.toUpperCase();
如果你不使用{}就会找不到changedmessage
这里这句相当于是两句:
String changedmessage=null;
changedmessage=message.toUpperCase();
如果你不使用{}就会找不到changedmessage
if(message != null){
String changedmessage=null;
}
changedmessage=message.toUpperCase();changedmessage的定义在程序块的内部,其作用域只在if程序块的内部,所以就会错误
因为:按照7楼的说法,将:
String changedmessage=message.toUpperCase();
改为:String changedmessage=null;是不是就可以了?
根本不是这回事.与是一条语句,还是两条语句根本就没有关系.真正的原因是:JAVA语言就是这么规定的:(见JLS 14.2节)
局部变量语句就只能在 一个block中定义.而一个block ,就是一对{}括号,内部放0条或多条语句.
因此:
if(exp)
int v=0;//错误
只能:
if(exp)
{ int v=0;//正确
}
String changedmessage=message.toUpperCase();//上面报的错误是:Test.java:9不是语句
如果说是等同与以下代码的话(下面代码),提示错误因该是changedmessage找不到符号才对啊
if(message != null){
String changedmessage=null;
}
changedmessage=message.toUpperCase();继续分析
String changedmessage = message.toUpperCase(); 这里这句相当于是两句: String changedmessage;
changedmessage=message.toUpperCase(); 如果你不使用{}就会找不到changedmessage