循环变量出来后是几

10 分钟

for (i = 1; i <= 5; i++) 正常结束后, 是几?答案是 6。因为每轮先执行、再 i++、再判断,直到 变成 6 时 不成立才停——正是这个"超了一步"的值让循环结束,所以出来时 比终点大 1。

int i;
for (i = 1; i <= 5; i++) { /* ... */ }
cout << i << "\n";           // 输出 6,比终点 5 大 1

出题人特别爱在循环体外接着用这个 ,考你记不记得它已经是"越界值"了。

三个前提要分清:一是这条规律只对"靠判断正常退出"成立;如果被 break 提前跳出, 停在 break 那一刻的值,不一定是终点 。二是若 定义在 for 的括号里(for (int i ...)),循环结束后它的作用域也结束了,外面根本用不了;能在外面用,说明 是在循环前定义的。三是步长不为 1 时,末值是"第一个不满足条件的值",得具体推。

小纸条

i 从 1 循环到 5 结束后,i 是几?

登录 后可看答案

循环变量出来后是几 · 考级冲刺 · op599 课程