{
using System;
using static System.Console;
class Program
{
static void Main(string[] args)
{
int score; //score
int totalScore = 0;
int count = 0;
string message;
WriteLine("Enter test scores:");
message = ReadLine();
score = Convert.ToInt32(message);
count = ++count;
totalScore += score;
while (score > 100)
{
Console.WriteLine("Invalid score, please enter a valid test score");
message = Console.ReadLine();
score = Convert.ToInt32(message);
count = ++count;
totalScore += score;
while (score != -1)
{
WriteLine("Enter test scores:");
message = ReadLine();
score = Convert.ToInt32(message);
count = ++count;
totalScore += score;
}
int average = totalScore / count; //the average
WriteLine("The average of all {0} scores is {1}", count, average);
}
}
}
}
每当我运行我的代码时,如果我首先输入无效分数,则表示在输入有效分数之前它是无效的,并且在我输入有效分数后然后尝试输入无效分数,它不会显示是无效的。为什么呢?
答案 0 :(得分:0)
当你第一次输入一个无效的,你进入第一个while循环,然后当你输入一个有效的循环时,你将运行最后一次while循环,因此进入另一个while循环,一旦你完成了你不会重来。
这是发生了什么
得分为> 100,写无效分数并阅读新分数
如果新得分仍然是> 100贯穿循环并重新开始。 但是如果新得分是< 100最后一次继续循环。