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


Where is the error in my Conditional Statement (PHP)?

挑战是:

  • 如果n是奇数,请打印"怪异"
  • 如果n是偶数,并且在2到5的包含范围内,请打印"不奇怪"
  • 如果n是偶数,并且在6到20的范围内,请打印"怪异"
  • 如果n是偶数并且大于20,则打印"不奇怪"

我的代码是:

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

问题是:

当我在当地车辙时,没关系。但是,当我将其提交给HackerBank时,他们在$N=5;案例中测试失败。根据挑战,我的条件有什么问题吗?

<?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';
    }
}
?> 

我很惊讶它能在本地为您工作。不应该。你的"不奇怪"条件只适用于大于20的偶数。你没有包括任何涵盖特殊情况的条件(奇怪的是6、8、10等)。

一个可行的解决方案是:

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

只有当数字为偶数,并且小于6或大于20时,第一个条件才会显示Not Weird。对于所有其他数字——奇数和偶数,从6到20,它显示怪异。