当我输入分数时,为什么不显示我的分数无效?

时间:2015-12-05 02:04:08

标签: c#

{
    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);
            }
        }
    }
}

每当我运行我的代码时,如果我首先输入无效分数,则表示在输入有效分数之前它是无效的,并且在我输入有效分数后然后尝试输入无效分数,它不会显示是无效的。为什么呢?

1 个答案:

答案 0 :(得分:0)

当你第一次输入一个无效的,你进入第一个while循环,然后当你输入一个有效的循环时,你将运行最后一次while循环,因此进入另一个while循环,一旦你完成了你不会重来。

这是发生了什么

得分为> 100,写无效分数并阅读新分数

如果新得分仍然是> 100贯穿循环并重新开始。 但是如果新得分是< 100最后一次继续循环。