嵌套在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);
    }
}

}

嵌套在C#中的if语句

  1. 假设您进入

名字-Puneet姓Chawla输入学生获得的分数-80010

那么答案是

PuneetChawla80080%所以他们做了一个10再见

  1. 当这个条件为假时,如果(点数<0||点数>1000(,那么你是根据百分比打分的,我认为你不需要再次从用户那里获得分数。

  2. 在某些情况下,可能会出现错误的输出,因为您设置了错误-如果,elseif,如果,elsief,如果然后其他正确-如果,elseif,elsei夫,elseiv,elseiff,则为else。

有很多问题

  1. 在"C"answers"F"分支之前缺少一个else。目前,所有阳性等级都将成为‘F’的

    else if (percent >= .7)
    {
        grades = "C";
    }
    

再次

    else if (percent >= .0)
    {
        grades = "F";
    }
  1. 然后,您将用此行覆盖计算的成绩

 grades = Console.ReadLine();

我相信你可能有意:

Console.WriteLine(grades);
  1. 计算完成后,您的应用程序将退出。我建议在末尾添加Console.ReadLine或类似内容,以允许用户查看结果

您正在获得正确的grades变量。但是在ifs语句的末尾,您正在覆盖它的值,所以只需删除这一行:

grades = Console.ReadLine();

PS:您还可以将所有if的语句与else if 链接

您的pgms乍一看有两个问题

  1. 你的if..elseelse里面错了,应该是

    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条件下

  1. 你应该删除grade = Consolde.ReadLine();,因为它会覆盖你的成绩分配