Я получаю результат, отличный от того, что я ожидаю от следующей задачи

#php #switch-statement #conditional-statements

#php #switch-statement #условные операторы

Вопрос:

Когда я использую 0 для ввода, он выводит мне это между 100 и 200. С другими значениями это работает нормально. Может кто-нибудь объяснить мне, почему это происходит?

http://prntscr.com/n7fzcy

 <?php

$num = intval(readline());

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

Комментарии:

1. Вы не можете использовать логические операторы <,>,!=,=,== …. в операторах case

2. Вам нужно использовать if оператор

Ответ №1:

Вы не можете использовать какие-либо логические операторы <,>,!=,=,== …. в операторах switch case.

Используйте простое if else условие:

    $num = intval(readline());

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