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

如何在PHP中使用switch语句打印80到100之间3的倍数

问题分析与修复代码

原代码的核心问题在于switch语句的使用方式错误:switch是基于值匹配的结构,你在case里写的是字符串形式的条件(比如"$i >= 80"),这会让PHP把$i和这个字符串做值比较,永远无法匹配成功,自然不会输出任何内容。另外两个case的条件逻辑重叠,写法完全不符合switch的使用规则。

要实现用switch语句打印80到100之间的3的倍数,我们可以利用switch(true)的技巧——当switch的表达式为true时,会执行第一个条件为true的case分支。以下是修正后的代码:

echo "Print Numbers Using Switch Statement:<br>";

// 找到80到100之间第一个3的倍数
$start = ceil(80 / 3) * 3;
for ($i = $start; $i <= 100; $i += 3) {
    switch (true) {
        case $i >= 80 && $i <= 100:
            echo $i . "<br>";
            break;
    }
}

代码说明

  • 先通过ceil(80/3)*3计算出80以上第一个3的倍数(81),避免遍历无关数字,提升效率
  • switch(true)让case里的条件表达式直接参与布尔判断,当$i在80-100范围内时,执行输出逻辑
  • 循环每次递增3,保证只处理3的倍数,符合需求

如果你想更严格地用switch判断每个数是否为3的倍数(即使循环范围更大),也可以这样写:

echo "Print Numbers Using Switch Statement:<br>";

for ($i = 80; $i <= 100; $i++) {
    switch ($i % 3) {
        case 0:
            echo $i . "<br>";
            break;
    }
}

这个版本通过判断$i%3的结果是否为0(即是否是3的倍数),利用switch的值匹配特性实现需求,同样符合要求。

内容的提问来源于stack exchange,提问作者Amna A.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 06:10:40