0
不作业。因此,我有一个简单的控制台程序来读取考试分数,并打印出平均分和分数。到目前为止,它是以下内容:哨兵控制while循环C#
public static void Main()
{
int sum = 0;
int count = 0;
double average = 0;
Console.WriteLine ("Enter all your exam scores one by one. When finished, enter -99");
string scores = Console.ReadLine();
while (scores != "-99") {
sum += int.Parse (scores);
count++;
scores = Console.ReadLine();
}
if (scores == "-99") {
average = sum/count;
if (average >= 90)
Console.WriteLine ("Your average score is {0}. This is good for a letter grade of A", average);
Console.WriteLine(....more scores etc...);
现在我想检查与TryParse无效的条目。我想我会在另一个while循环盘之前,其他并改变原来的一个是这样的:
Console.WriteLine ("Enter all your exam scores one by one. When finished, enter -99");
string scores = Console.ReadLine();
while (int.TryParse(scores, out numbers) == false){
Console.WriteLine("Please enter a valid integer")
scores = Console.ReadLine();
sum += int.Parse(scores);
count++;
}
while (scores != "-99" && int.TryParse(scores, out numbers) == true) {
sum += int.Parse (scores);
count++;
scores = Console.ReadLine();
}
if (scores == "-99") {
average = sum/count;
if (average >= 90)
Console.WriteLine ("Your average score is {0}. This is good for a letter grade of A", average); ...etc...
这里的问题是,如果用户在进入第一个有效的条目,然后进入一个无效时,编译器无法返回到第一个while循环来检查无效条目。所以我试图交换while循环的位置。但是这具有相同的效果;它无法返回到第一个while循环以在输入无效的条目后检查有效条目。答案很可能很简单,但我被卡住了。
只需要小心,如果用户在第二次尝试时输入-99,因为您需要跳出两个循环。我没有在上面的例子中包括如何做到这一点。 – JNYRanger