为什么当我输入分数时,它没有显示我的分数无效

本文关键字:显示 无效 我的 输入 为什么 | 更新日期: 2023-09-27 18:25:54

{
    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);
            }
        }
    }
}
每当我运行代码时,如果我先输入无效分数,它会显示它是无效的,直到我输入有效分数

,而在我输入有效分数然后尝试输入无效分数后,它不会显示它是无效的。为什么?

为什么当我输入分数时,它没有显示我的分数无效

当你第一次输入一个无效的循环时,你进入第一个while循环,之后当你输入一个有效的循环时,你将最后一次运行while循环,从而进入另一个while循环,一旦你在那里完成,你就不会重新开始。

这就是正在发生的事情

当分数> 100 时,写入无效分数并读取新分数

如果新分数仍然> 100 运行循环并重新开始。但是,如果新分数<100 继续最后一次循环。