问答详情
源自:6-5 PHP条件结构之switch…case…

如果要使$num的值在1-10内为1等奖,11-20为2等奖,21-25为三等奖如何表达,在case后面接着的条件怎么写?

如果要使$num的值在1-10内为1等奖,11-20为2等奖,21-25为三等奖如何表达,在case后面接着的条件怎么写?

我试过case 1-10:

....这样写是会报错的,

也试过case rand(1,10):

也会报错

提问者:littleleopard 2018-09-01 14:53

个回答

  • 慕侠6498191
    2019-09-05 09:10:30

    $num = rand(1,50);//获取1至50的随机数

    $info = "";//提示信息

    switch($num){

        case $num <= 10:

    $info = "恭喜你!中了一等奖!";

    break;

        case $num > 10 && $num <= 20:

    $info = "恭喜你!中了二等奖!";

    break;

      case $num > 20 && $num <= 25:

    $info = "恭喜你!中了三等奖!";

    break;

    default:

    $info = "很遗憾!你没有中奖!";

    }


  • 慕圣3571134
    2018-12-19 16:16:57

    如果使用纯switch语句写你说的那个要求,纯属找虐的。要这么写:

    switch($num){

        case 1:

        case 2:

        case 3:

        case 4:

        case 5:

        case 6:

        case 7:

        case 8:

        case 9:

        case 10:

         $info = "恭喜你!中了一等奖!";

         break;

        case 11:

        case 12:

        case 13:

        case 14:

    ……本人已累死,你还没中奖?

    }

  • 枫叶咚咚咚
    2018-11-09 05:00:03

    <?php
    $num = rand(1,50);//获取1至50的随机数
    echo "随机数为: ".$num;
    echo "<br />";
    $info = "";//提示信息
    $temp = $num / 50;
    if($temp<=0.2) //$num 范围为1-10
        $num = 1;
    else if($temp>0.2 and $temp<=0.4)//$num 范围为11-20
        $num = 2;
    else if($temp>0.4 and $temp<=0.5) //$num 范围为21-25
        $num = 3;
    switch($num){
        case 1:
            $info = "恭喜你!中了一等奖!";
            break;
        case 2:
            $info = "恭喜你!中了二等奖!";
            break;
         case 3:
            $info = "恭喜你!中了三等奖!";
            break;
        default:
            $info = "很遗憾!你没有中奖!";
    }
     echo $info; //输出是否中奖
    ?>

    这个样子可以实现你想要的功能。

  • yasser1
    2018-10-28 11:09:30

    <?php

    $num = rand(1,50);//获取1至50的随机数

    $info = "";//提示信息

    switch(ceil($num / 10)){

            case 1:

    $info = "恭喜你!中了一等奖!";

    break;

        case 2:

    $info = "恭喜你!中了二等奖!";

    break;

          case 3:

    $info = "恭喜你!中了三等奖!";

    break;

    case 4;

    $info = "恭喜你!中了四等奖!";

    break;

        default:

    $info = "很遗憾!你没有中奖!";

    }

     echo $num."<br/>";

     echo $info; //输出是否中奖

    ?>


  • weibo_我在四年后等你_03978156
    2018-09-12 17:30:06

    switc后的表达式应该可以写成:switch(($num-1)/10+1),不过这个三等奖的范围是21~30。你可以参考一下。


  • 慕粉3386124
    2018-09-06 00:08:33

    不能使用if...else if吗?

  • littleleopard
    2018-09-01 15:00:19

    查阅了相关网站,说是不能跟范围限制,只是switch case语句的局限性,不过可以这样

    case 1:

    case 2:

    case 3:

    .

    .

    case 10:

            $info="............"