我正试图创建一个程序,在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.">";
此方法将首先设置最终失败的值,然后如果数字满足每个条件的标准,则覆盖这些值,直到不再满足任何条件为止。