PL/SQL Continue语句疑问:为何代码执行后最终输出2?
PL/SQL Continue语句执行逻辑解析
你的核心错误是混淆了Continue和Exit语句的作用:Continue并不会停止整个循环,它只是跳过当前循环迭代中剩余的代码,直接进入下一次循环的判断。
我们一步步拆解这段代码的执行流程:
第一次循环(i=1)
- 执行
dbms_output.put_line(i),输出1 - 判断
continue when i>1:i=1不满足i>1的条件,不执行Continue - 继续执行后续代码,
dbms_output.put_line('oracle')输出oracle - 本次循环结束,进入下一次迭代
第二次循环(i=2)
- 先执行
dbms_output.put_line(i),输出2 - 判断
continue when i>1:i=2满足条件,触发Continue语句 - 直接跳过后续的
dbms_output.put_line('oracle'),本次循环剩余代码不再执行 - 循环迭代结束,由于i已经达到范围上限2,整个循环终止
所以最终输出顺序是:1 → oracle → 2,和你看到的结果一致。
内容的提问来源于stack exchange,提问作者moon light
相关产品推荐
相关产品推荐

