得分介于PHP范围之间


Score between range PHP

我正试图创建一个程序,在if语句中返回特定的代码。

分数低于70:在h1标签中显示分数,在h2标签中显示其等级:D

得分在70-80之间:在h1标签中显示得分,在h2标签中显示其等级:C

得分在80-90之间:在h1标签中显示得分,在h2标签中显示他们的等级:B;

如果有人得了80分,给他们打B得分在90-100之间:在h1标签中显示得分,在h2标签中显示他们的等级:A;

如果有人得了90分,给他们一个A例如,代码的输出如下所示:

这是我的代码:

function random(){
    $number = rand(50,100);
    echo "<h1> Your Score: {$number}/100 </h1>"; 
    if($number>70){
        echo "<h2>Your Grade is D</h2>";
    }else if($number=(range(70, 80))){
        echo "<h2>Your Grade is C</h2>";
    }else if($number=(range(80, 90))){
        echo "<h2>Your Grade is B</h2>";
    }else if($number==80){
        echo "<h2>Your Grade is B</h2>";
    }else if($number=(range(90, 100))){
        echo "<h2>Your Grade is A</h2>";
    }

}
$score = random();
echo $score; 

目前,它没有显示正确的成绩和文本。知道吗?

您的逻辑目前有点过时。

数字应该从最大值开始并向下移动,否则它将达到> 70,并立即放入该括号。

<?php
    function random(){
        $number = rand(50,100);
        echo "<h1> Your Score: {$number}/100 </h1>"; 
        if($number >= 90){
            echo "<h2>Your Grade is A</h2>";
        }else if($number >= 80){
            echo "<h2>Your Grade is B</h2>";
        }else if($number >= 70){
            echo "<h2>Your Grade is C</h2>";
        }else if($number < 70){
            echo "<h2>Your Grade is D</h2>";
        }

    }
    $score = random();
    echo $score;
?>

if语句背后的逻辑是错误的。

还要注意,$score = random();实际上将echo作为结果,因为函数是回显的,不返回任何内容。

试试这个:

function random(){
    //Generate random number and create a string that will be returned
    $number = rand(50,100);
    $result = "<h1> Your Score: {$number}/100 </h1>"; 
    //Decide what grade the number gets
    if($number>=90){
        $grade = "A";
    } elseif($number>=80){
        $grade = "B";
    } elseif($number>=70){
        $grade = "C";
    } else {
        $grade = "D";
    }
    //Add the grade to the result and return it
    $result .= "<h2>Your grade is $grade</h2>";
    return $result;
}
$score = random();
echo $score;

是的,你的条件语句有缺陷,一个粗略的方法可以像下面的一样

$grade = "FAIL"; $tag = "h5";
if ($number >= 70) {
    $grade = "C"; $tag = "h4";
}
if ($number >= 80) {
    $grade = "B"; $tag = "h3";
}
if ($number >= 90) {
    $grade = "A"; $tag = "h2";
}
echo "<".$tag.">Your Grade is ".$grade."</".$tag.">";

此方法将首先设置最终失败的值,然后如果数字满足每个条件的标准,则覆盖这些值,直到不再满足任何条件为止。