参见英文答案 >
Compiler error when declaring a variable inside if condition and no curly braces5个
if ( year % 4 == 0 ) int i = 0; else int j = 0;
>令牌“int”上的语法错误,删除此令牌
>我无法解决变量
>令牌“int”上的语法错误,删除此令牌
> j无法解析为变量
>令牌“=”上的语法错误,删除此令牌
我不知道为什么会这样.
从我观察到的情况来看,我认为在if else构造体中放置一个int声明正在实现它.
int i; int j; if ( year % 4 == 0 ) i = 0; else j = 0;
在这种情况下没有语法错误.为什么?
解决方法
这可能是因为范围.在if语句中声明i和j使得它们在if语句之外无法访问.在外面声明它们会改变它们的范围.