c#..我的while循环不断重复

本文关键字:循环 我的 while | 更新日期: 2023-09-27 18:22:51

我试图让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;
                    }
                }
        }
    }
}

c#..我的while循环不断重复

if (stop)
    break;

这种事从来没有发生过。

我看到了:

bool stop = false;

以及:

if (stop)
    break;

但我从未见过stop = true;

你打算在哪里把stop设为true?