在下面的 C++ 代码中,由于循环中的 continue 是无条件被执行,因此将导致死循环。
for (int i = 1; i < 10; i++) continue;这题关键在于死记 continue 和循环体执行顺序。别被‘跳过循环’误导,continue 只跳过本次循环体,i++ 照样执行。
最容易掉进 A 的坑,误以为 continue 能跳过 i++ 导致 i 永远为 1 形成死循环。其实 for 循环是先判断条件再执行循环体最后执行 i++,continue 只能跳到 i++ 这一步,i++ 本身仍然会执行。
本题考查 GESP 一级大纲中“循环语句”模块的核心机制。命题人专门设计这道题,就是要卡住那些“背语法不背逻辑”的考生——死记“continue 跳过本次循环”这句话,却误以为它连 i++ 的增量操作也跳过了。
for 循环的执行顺序是固定的:先判断条件,再执行循环体,最后执行 i++。continue 只能跳到 i++ 这一步,但 i++ 本身仍然会执行。本例中,i 从 1 开始,每次都被 continue 跳过循环体,但 i++ 照样把 i 加 1,条件 i<10 最终会被满足,循环正常结束。
选项 A 利用的是语言描述与执行逻辑之间的语义偏差。学生若只凭“continue 跳过循环”这半句记忆,会误以为整个循环被跳过,i 永远保持为 1,自然推出死循环。命题人把 continue 放在循环体唯一语句的位置,就是专门诱导这种“跳过=完全跳过”的错误直觉。
换一种考法:把 continue 改为 break,问循环体执行了几次?答案会变成 0 次,因为 break 直接跳出整个 for 结构,连 i++ 都执行不到。如果再加一个条件判断在循环体内,比如“只有 i=5 时才 continue”,那 i 从 1 到 5 正常递增,第 5 次被 continue 跳过 i++,i 卡在 5 形成死循环。刷到类似题先问自己:continue 到底能跳过哪些步骤,哪些步骤它跳不过?
从数据看,循环结构是高频考点,题库共 609 题,GESP 一级占比 139 题,2023 年单年 77 题、2024 年 128 题、2025 年 158 题,呈逐年上升趋势。控制结构也考得狠,429 题里 GESP 一级占 133 题,2025 年更是 160 题。这说明命题人越来越喜欢用基础语法挖坑,尤其是 continue 和 break 的细微差别。