日期:2014-05-20  浏览次数:20699 次

一个写法的问题
if( ( int i = object.method() ) != 0 ){
  //code
}
不能使用

int i;
if( ( i = object.method() ) != 0 ){
  //code
}
可以使用

第一种写法存在什么问题呢?
变量i仅仅在if{ //code }中使用,所以想用第一种声明方式

------解决方案--------------------
if() 里面不能进行变量的声明 如果你要进行 i = object.method() 还必须给i赋初值
------解决方案--------------------
你这里是作为一个局部变量 局部变量必须初始化 而且if() 括号里面不能对变量进行声明
------解决方案--------------------
条件式中不允许初始化。if while for都不能。
for循环的第一个参数用来初始化的,第二个是条件判断。
也等同于
int i = xx
while(xx < ??)
{
i++;
}