gpt4 book ai didi

java - 如何将 for 循环与 if-else 语句结合使用

转载 作者:行者123 更新时间:2023-12-01 08:00:52 27 4
gpt4 key购买 nike

我必须编写一个名为 getGrade 的方法,它接受一个表示学生对类(class)进行评分并返回学生的数字类(class)成绩。它基于以下规模:

Score     Grade
<60 0.0
60-62 0.7
63 0.8
64 0.9
65 1.0
...
92 3.7
93 3.8
94 3.9
>= 95 4.0

我的输出将是:

“学生的成绩是x;学生的成绩是y

其中 x 为分数 (0 - 100),y 为等级 (0.0 - 4.0)

除了分数 63 - 94 之外,我已经弄清楚了一切。似乎这里必须有一个 for 循环,但我无法让它工作,因为该方法正在寻找 return 语句,并且不喜欢这个语句我有嵌套的 for 循环。经过研究,我发现你不能将 for 语句放在 else-if 中。既然如此,我该如何编码分数 63 - 94。这是我的代码:

public class Exercise12 
{
public static void main(String[] args)
{
for(int i = 55; i <= 100 ; i++)
{
System.out.println("Student's score is: " + i +
"\tStudent's grade is " + getGrade(i));
}
}
public static double getGrade(int score)
{
double grade = 0.0;
if(score < 60 && score > 0)
{
return grade = 0.0;
}
else if (score >= 60 && score <= 62)
{
return grade = 0.7;
}
else if(score >= 63 && score <= 94)
{
//nested for loop was here
}
else if(score >= 95 && score <= 100)
{
return grade = 4.0;
}
else
{
throw new IllegalArgumentException("Invalid values. Scores " +
"must be between 0 and 100");
}
}
}

最佳答案

解决 for 循环误解:

如果我理解正确的话,你尝试这样做:

grade = 0.7;
for (int i = 63, i <= score; i++)
{
return grade + 0.1;
}

此变体的问题是 return 不会等待 for 循环完成返回值,而是在调用时直接返回值。此问题的解决方案是将 return 移至语句末尾,以实际返回完全计算的值。

<小时/>

我们甚至可以跳过 for 循环,直接计算值:

else if(score >= 63 && score <= 94)
{
return 0.7 + (0.1 * (score - 62));
}

否则这实际上只是在计数:

else if(score >= 63 && score <= 94)
{
grade = 0.7;
for (int i = 63, i <= score; i++)
{
grade += 0.1;
}
return grade;
}

正如其他人所指出的,我也对您在哪里读到不可能在 else if 语句中使用 for 循环感兴趣......

关于java - 如何将 for 循环与 if-else 语句结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25316590/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com