You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PL/SQL问题:无法输出能被2和3整除的前20个数,输出大量0求修正

PL/SQL代码修改方案:打印前20个同时被2和3整除的数

原代码存在两个核心问题:

  • 变量n在循环体内没有递增操作,导致程序陷入死循环,持续输出初始值0
  • 循环条件n <= 40无法精准控制输出前20个符合要求的数,范围限制不合理

以下是修正后的代码:

SET SERVEROUTPUT ON;

DECLARE 
    n number := 0;
    count_num number := 0; -- 新增计数器,记录已输出的符合条件的数字个数
BEGIN
    -- 循环条件改为计数器小于20,确保只输出前20个目标数
    WHILE count_num < 20
    LOOP
        -- 同时被2和3整除等价于被6整除
        IF MOD(n, 6) = 0 AND n != 0 THEN -- 可选:如果不需要输出0,加上n!=0的判断
            DBMS_OUTPUT.PUT_LINE(n);
            count_num := count_num + 1; -- 输出后计数器加1
        END IF;
        n := n + 1; -- 每次循环n递增,避免死循环
    END LOOP;
END;
/

关键改动说明:

  • 添加count_num计数器,用来追踪已输出的符合条件的数字数量,确保只输出前20个
  • 循环条件改为count_num < 20,替代原有的范围限制,逻辑更准确
  • 在循环末尾增加n := n + 1,让变量n持续递增,避免死循环
  • 可选增加n != 0的判断:如果不需要将0纳入结果(0虽然能被2和3整除,但通常这类需求从正整数开始),可以保留这个条件;如果需要包含0,去掉即可

内容的提问来源于stack exchange,提问作者Luke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 10:25:38