int i=0; while(i<10) { if(i<1) continue; if(i==5) break; i++; }为什么一次也不执行,说详细点,这是今天最后一次和你交流了❛‿˂̵✧
时间: 2023-06-23 20:43:47 浏览: 125
这段代码中,循环体内的第一条语句是 `if(i<1) continue;`,它的作用是当 i 小于 1 时,跳过本次循环,直接进入下一轮循环。而在循环开始时,i 的初始值被赋为 0,因此第一次进入循环时,i 小于 1,满足 `if(i<1)` 的条件,于是直接跳过了本次循环。而在下一轮循环中,i 的值仍然是 0,同样不满足循环条件 `i<10`,因此整个循环体都没有执行过,最终输出的结果也是 0。
因此,为了让循环体执行,需要将 i 的初始值改为 1,即将 `int i=0;` 改为 `int i=1;`,这样第一次进入循环时,`if(i<1)` 的条件不满足,就不会跳过本次循环,从而能够正常执行循环体内的其他语句。
相关问题
int i=0; while(i<10){ i++; if(i<1) continue; if(i==5) break; }
这段代码会使变量 `i` 的值变为 5,因为当 `i` 的值等于 5 时,会执行 `break` 语句,跳出循环。
代码中使用了 `while` 循环来对变量 `i` 进行迭代,每次迭代会将 `i` 的值加 1。在循环体中,首先使用 `continue` 语句跳过 `i` 小于 1 的情况,然后判断 `i` 是否等于 5,如果等于 5,则执行 `break` 语句跳出循环。
因为变量 `i` 的初始值为 0,所以在第一次循环迭代中,`i` 的值会变成 1。然后进入循环体中,因为 `i` 大于等于 1,所以不会执行 `continue` 语句,然后判断 `i` 是否等于 5,因为 `i` 不等于 5,所以继续进行下一次循环迭代。在第二次循环迭代中,`i` 的值变成 2,依次类推,直到第五次循环迭代中,`i` 的值变成 5,执行 `break` 语句跳出循环。
因此,最后输出的 `i` 的值为 5。
#include<stdio.h> int main() { int i=0; while(i<10) { if(i<1)continue; if(i==5)break; i++; } }
这段代码中存在一个问题,即当i<1时,执行continue语句跳过后面的代码,但没有对i进行递增操作,导致i始终为0,造成了无限循环的情况。
修改后的代码如下:
```c
#include <stdio.h>
int main() {
int i = 0;
while (i < 10) {
i++;
if (i < 1) {
continue;
}
if (i == 5) {
break;
}
}
return 0;
}
```
这样修改后,当i<1时,执行continue语句跳过后面的代码,但i会被递增,防止了无限循环的情况。