我正在尝试创建一个在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
目前它没有显示正确的成绩和文字。有什么想法吗?
答案 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.">";
此方法将首先设置最终失败的值,然后如果数字符合每个条件的条件,则覆盖这些值,直到不再满足条件为止。