看代码:
下面代码是错误的
int a = 1;
int b = 2;
//变量c放在小括号内声明
if((var c = a + b) > 2){}
而下面代码是正确的
int a = 1;
int b = 2;
//变量c放在小括号外声明
var c = 0;
if((c = a + b) > 2){}
java这样设计的目的是出于对变量作用域的考虑,如果定义的变量作用域只是在if()小括号内,那也是无意义的。而while循环不一样,while循环括号内定义的变量是可以在循环中利用的。