[英]I am new to programming and C#, I am getting the wrong output for school homework
int grade, counter = 0;
Console.Write("Please enter a grade");
grade = int.Parse(Console.ReadLine());
if (grade >= 60 && grade != 101)
{
counter++;
}
while (grade != 101)
{
if (grade >= 60 && grade != 101)
{
counter++;
}
Console.WriteLine("Please enter another grade, if you no longer wish to enter grades, enter '101' ");
grade = int.Parse(Console.ReadLine());
}
Console.WriteLine("There are " + counter + " grades that are over 60");
这会计算收到的分数超过 60 的数量,我使用计数器来显示和计算它们并告诉程序完成,您输入“101”
为什么输入:90 1 101 导致计数器等于 2?
看评论:
grade = int.Parse(Console.ReadLine());
if (grade >= 60 && grade != 101) // You check first input and ...
{
counter++; // increment counter (to 1 because it was 90), then
}
while (grade != 101) // this is true ...
{
if (grade >= 60 && grade != 101) // you check the >>first input<< _again_ ...
{
counter++; // and increment counter a second time!
}
Console.WriteLine("Please enter another grade, if you no longer wish to enter grades, enter '101' ");
grade = int.Parse(Console.ReadLine());
}
Console.WriteLine("There are " + counter + " grades that are over 60");
您通常会使用一个循环来检查其主体(do..while)之后的条件或使第一次检查通过。 无论哪种方式,您都希望在循环内的开始处获得一次输入。
有点像这样:
// It's considered cleaner to have each var declared in its respective line:
int grade = 0;
int counter = 0;
do
{
Console.WriteLine("Please enter grade, if you no longer wish to enter grades, enter '101' ");
if(int.TryParse( Console.ReadLine(), out grade )) // << never "trust" user input!
{
if (grade >= 60 && grade != 101)
{
counter++;
}
}
else
{
Console.WriteLine("Please enter integer numbers, only! ('101' to exit.)");
}
}
while( grade != 101 );
Console.WriteLine("There are " + counter + " grades that are over 60");
// While it doesn't make much of a difference _in this case_, you may also consider these alternatives:
// Console.WriteLine("There are {0} grades that are over 60", counter);
// Console.WriteLine($"There are {counter} grades that are over 60");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.