下面 C++ 代码执行后将输出 20 。
int i;
for (i = 0; i < 20; i += 3)
if (i % 3 != 0)
continue;
cout << i;看到 for 循环先想循环变量变化规律,本题 i 每次加 3,关键看 continue 何时生效。i%3!=0 时跳过 cout,只有 i 是 3 的倍数才输出。
选项 A 把输出误当成"最终 i 值"或"只输出 20",忽略了 continue 的跳过作用;很多人以为 continue 会跳过 i+=3,其实它只跳过本次循环体剩余部分,i 仍会累加。
本题考查《GESP 考试大纲》一级"循环结构"与"条件语句"模块。命题人放这道题,就是要卡住考生对 continue 作用域和循环变量更新顺序的混淆——绝大多数人只记得"跳过",却忘了 continue 不阻止 i+=3 执行。
先模拟循环:i 从 0 开始,每次加 3,直到 i>=20。i%3!=0 时 continue,否则 cout<<i。