大家可以先看看下面这段代码有什么问题
int max = 10;
int i = 0;
while(true) {
i++;
print("%i\n", i);
if(i = 10) {
break;
}
}
这段代码期望打印 1~10 的数字,但可以达到预期吗?实际运行一下就会发现,它打印完 1 就直接退出了,这是为什么呢?因为错误把 “==” 写成了 “=”,导致程序在运行到第一个循环时,就直接 break 退出了。
通过把常量放在 “=” 前面,可以在编译期就暴露出这个问题,因为常量是不能被赋值修改的,具体代码如下
int max = 10;
int i = 0;
while(true) {
i++;
print("%i\n", i);
if(10 = i) { // 这句会编译时会直接报错,必须写成 == 才可以正常编译
break;
}
}