得分范围PHP

时间:2015-07-02 09:54:43

标签: php html css

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

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

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

分数在80-90之间:在h1标签中显示分数并在h2标签中显示其等级:B;

如果有人得到80,给他们一个B. 分数在90-100之间:在h1标签中显示分数,并在h2标签中显示其等级:A;

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

这是我的代码:

null

目前它没有显示正确的成绩和文字。有什么想法吗?

3 个答案:

答案 0 :(得分:4)

你的逻辑目前还有一点。

数字应从最大值开始减少,否则它会达到> 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;
?>

答案 1 :(得分:3)

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;

答案 2 :(得分:0)

是的,您的条件陈述存在缺陷,粗略的做法可能如下所示

$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.">";

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