嵌套在C#中的if语句
本文关键字:if 语句 中的 嵌套 | 更新日期: 2023-09-27 17:52:12
我会得到命令提示,为"坏分数"找到正确答案,但如果我尝试键入好分数(800(,则不会有任何效果。如有任何帮助,我们将不胜感激。我是新手,所以我很抱歉我的编码器不漂亮。
//variables
string firstName, lastName, grades = "";
double points = 0, percent = 0;
//Greeting
Console.WriteLine("The purpose of this program is to allow the teacher to calculate the percentage and final grade for students in their class.");
//Display and Inputs
Console.WriteLine("'n'nPlease enter the students first name.");
firstName = Console.ReadLine();
Console.WriteLine("'n'nPlease enter the students last name.");
lastName = Console.ReadLine();
Console.WriteLine("'n'nPlease enter the points that the student received.'n'n");
points = Convert.ToDouble(Console.ReadLine());
//Display after points are entered
if (points < 0 || points > 1000 )
{
Console.WriteLine("Bad Score!");
}
else
{
percent = points / 1000;
if (percent >= .9)
{
grades = "A";
}
else if (percent >= .8)
{
grades = "B";
}
if (percent >= .7)
{
grades = "C";
}
else if (percent >= .6)
{
grades = "D";
}
if (percent >= .0)
{
grades = "F";
}
else
{
Console.WriteLine("WRONG!!");
}
}
grades = Console.ReadLine();
//Outputs
Console.WriteLine(firstName);
Console.WriteLine(lastName);
Console.WriteLine(points);
Console.WriteLine(percent.ToString("P"));
Console.WriteLine("so they made an" + grades);
//Closing statement
Console.WriteLine("Goodbye");
Environment.Exit(1);
}
}
}
- 假设您进入
名字-Puneet姓Chawla输入学生获得的分数-80010
那么答案是
PuneetChawla80080%所以他们做了一个10再见
-
当这个条件为假时,如果(点数<0||点数>1000(,那么你是根据百分比打分的,我认为你不需要再次从用户那里获得分数。
-
在某些情况下,可能会出现错误的输出,因为您设置了错误-如果,elseif,如果,elsief,如果然后其他正确-如果,elseif,elsei夫,elseiv,elseiff,则为else。
有很多问题
-
在"C"answers"F"分支之前缺少一个
else
。目前,所有阳性等级都将成为‘F’的else if (percent >= .7) { grades = "C"; }
再次
else if (percent >= .0)
{
grades = "F";
}
- 然后,您将用此行覆盖计算的成绩
grades = Console.ReadLine();
我相信你可能有意:
Console.WriteLine(grades);
- 计算完成后,您的应用程序将退出。我建议在末尾添加
Console.ReadLine
或类似内容,以允许用户查看结果
您正在获得正确的grades
变量。但是在ifs语句的末尾,您正在覆盖它的值,所以只需删除这一行:
grades = Console.ReadLine();
PS:您还可以将所有if
的语句与else if
链接
您的pgms乍一看有两个问题
-
你的
if..else
在else
里面错了,应该是else { percent = points / 1000; if (percent >= .9) { grades = "A"; } else if (percent >= .8) { grades = "B"; } else if (percent >= .7) { grades = "C"; } else if (percent >= .6) { grades = "D"; } else if (percent >= .0) { grades = "F"; } else { Console.WriteLine("WRONG!!"); } }
您在检查百分比>=0.7和百分比>=0.0时遗漏了其他内容假设您输入了800,则百分比将为0.8,因此如果百分比>=0.08,则条件为真,等级="B",并且由于百分比>=0.7时没有其他情况,因此它也将通过,等级将变为"c",至少在检查百分比>=0.0时没有其他情况,因此它还将通过,并且等级将变成"F",因此在所有条件下都需要其他情况。因此,最终,无论有多少积极的百分比,由于缺少其他因素,分数都将为"F"。。在if条件下
- 你应该删除
grade = Consolde.ReadLine();
,因为它会覆盖你的成绩分配