我的条件语句(PHP)中的错误在哪里?

时间:2016-05-09 08:19:58

标签: php if-statement conditional-statements

挑战是:

  • 如果n为奇数,请打印“Weird”。
  • 如果n是偶数且在2到5的包含范围内,则打印“Not Weird”。
  • 如果n是偶数且在6到20的包含范围内,则打印“Weird”。
  • 如果n为偶数且大于20,则打印“Not Weird”。

我的代码是:

<?php
$N=5;

if($N%2==0 && $N>20){
    echo "Not Weird";
}else{
    echo "Weird";
}
?> 

问题是:

当我在本地车辙时,没关系。但是,当我将其提交给 HackerRank 时,它会在$N=5;案件时失败。根据挑战我的条件是否有任何问题?

2 个答案:

答案 0 :(得分:1)

<?php
$n=5;
if($n%2==1){
    echo 'Weird';
}else{
    if($n >= 2 && $n <= 5){
        echo 'Not Weird';
    }elseif($n > 5 && $n <= 20){
        echo 'Weird';
    }else{
        echo 'Not Weird';
    }
}
?> 

答案 1 :(得分:1)

我很惊讶它在当地适合你。它不应该。您的“非奇怪”条件仅适用于大于20的偶数。您没有包含任何可以涵盖特殊情况的条件(对于8,8,10等奇怪)。

一个有效的解决方案是:

<?php
if ($N%2 == 0 && ($N < 6 || $N > 20)) {
    echo "Not Weird";
} else {
    echo "Weird";
}

第一个条件显示Not Weird只有当数字是偶数时,低于6,或者大于20.对于所有其他数字 - 奇数,甚至是6到20的范围,它显示为奇怪。