首页 > 解决方案 > 我得到的输出与我对以下任务的期望不同

问题描述

当我使用 0 作为输入时,它会输出 100 到 200 之间的值。对于其他值,它可以正常工作。有人可以解释一下为什么会这样吗?

http://prntscr.com/n7fzcy

<?php

$num = intval(readline());

switch ($num) {
    case $num < 100:
        echo "Less than 100";
        break;
    case $num >= 100 && $num <= 200:
        echo "Between 100 and 200";
        break;
    default:
        echo "Greater than 200";
}

标签: phpswitch-statementconditional-statements

解决方案


您不能在switch case语句中使用任何逻辑运算符 <,>,!=,=,== ....。

使用一个简单的if else条件:

   $num = intval(readline());

    if($num < 100){
        echo "Less than 100";
    }else if($num >= 100 && $num <= 200){
        echo "Between 100 and 200";
    }else{
        echo "Greater than 200";
    }

推荐阅读