0

我试图让我的 while 循环只继续重复,直到所有科目都得到回答,然后它应该停止并显示奖金和最终分数。但不知道为什么它不这样做?请帮忙。

namespace Assignment
{
    class Class1
    {
        public static int attempt, sum, AptScore, GenScore, MathScore, EngScore, bonus, TotalScore, FinalScore, choice = 0;
        public static string ans;
        static void Main(string[] args)
        {
            bool stop = false;
            Console.WriteLine("Welcome to this Salisbury University IQ Test game");
            Console.WriteLine();
            Console.WriteLine("How many times have you attempted this test?");
            attempt = Convert.ToInt32(Console.ReadLine());
            while (true)
                if (attempt > 1)
                {
                    Console.WriteLine("You cannot take this test");
                }
                else
                {
                    Console.WriteLine(" \n1. Aptitude \n2. English. \n3. Math \n4. Gk \n5. Exit");
                    choice = Convert.ToInt32(Console.ReadLine());
                    switch (choice)
                    {
                        case 1:
                            Console.WriteLine(" What was the name of the lebanon tyrant who ruled for years unending before he was toppled due to civil war? \nA. Osama Bin laden \nB. Gaddafi \nC. Jonathan ");
                            ans = Console.ReadLine();
                            if (ans == "B" || ans == "b")
                            {
                                AptScore += 10;
                            }
                            break;
                        case 2:
                            Console.WriteLine(" What is the antonym of Pleasure? \nA. Pain \nB. Ecstacy \nC. Wonder");
                            ans = Console.ReadLine();
                            if (ans == "A" || ans == "a")
                            {
                                EngScore += 10;
                            }
                            break;
                        case 3:
                            Console.WriteLine(" What is the sum of 435 and 345? \nA. 799 \nB. 780 \nC. 600 ");
                            ans = Console.ReadLine();
                            if (ans == "B" || ans == "b")
                            {
                                MathScore += 10;
                            }
                            break;
                        case 4:
                            Console.WriteLine(" What year did Nigeria become a republic? \nA. 1960 \nB. 1963 \nC. 1990 ");
                            ans = Console.ReadLine();
                            if (ans == "B" || ans == "b")
                            {
                                GenScore += 10;
                            }
                            break;
                        case 5:
                            Environment.Exit(0);
                            break;
                    }
                    if (stop)
                        break;
                    TotalScore = MathScore + GenScore + EngScore + AptScore;
                    Console.WriteLine("Your total score is : " + TotalScore);
                    if (TotalScore == 10)
                    {
                        Console.WriteLine(" You have no Bonus point ");
                    }
                    else if (TotalScore == 20)
                    {
                        bonus += 2;
                        Console.WriteLine("Your Bonus is {0}", bonus);
                    }
                    else if (TotalScore == 30)
                    {
                        bonus += 5;
                        Console.WriteLine("Your Bonus is {0}", bonus);
                    }
                    else if (TotalScore == 40)
                    {
                        bonus += 10;
                        Console.WriteLine("Your Bonus is {0}", bonus);
                    }
                    else
                    {
                        FinalScore = TotalScore + bonus;
                        Console.WriteLine("Your finalscore is : " + FinalScore);
                    }
                    switch (FinalScore)
                    {
                        case 10:
                            if (FinalScore >= 10)
                            {
                                Console.WriteLine("Your IQ level is below average");
                            }
                            break;
                        case 22:
                            if (FinalScore >= 22)
                            {
                                Console.WriteLine("Your IQ level is average");
                            }
                            break;
                        case 35:
                            if (FinalScore >= 35)
                            {
                                Console.WriteLine("You are intelligent");
                            }
                            break;
                        case 40:
                            if (FinalScore == 40)
                            {
                                Console.WriteLine("You are a genius");
                            }
                            break;
                        default:
                            break;
                    }
                }
        }
    }
}
4

2 回答 2

6
if (stop)
    break;

这永远不会发生。

于 2013-07-17T21:15:55.217 回答
1

我懂了:

bool stop = false;

并且:

if (stop)
    break;

但我从来没有见过stop = true;

您打算在哪里设置停止为真?

于 2013-07-17T21:23:09.853 回答