C#中的连续循环

我最近开始学习 C#,并开始根据有关笑话的流程图 ( http://prntscr.com/jo656t )制作简单的程序。


然而,当我在关于“你想听另一个笑话吗?”的流程图的一部分时。我完全不知道如何循环这个。


这是代码。


class Program

{

    static void Main(string[] args)

    { 

        Console.BackgroundColor = ConsoleColor.Black;

        Console.ForegroundColor = ConsoleColor.White;


        string Name;


        Console.WriteLine("What is your name? ");

        Name = Console.ReadLine();

        Console.Write(Name);

        Console.Clear();


        Console.WriteLine("What is your age?");

        int Age = Convert.ToInt16(Console.ReadLine());

        Console.Write(Age);

        Console.Clear();


        string[] jokes = new string[] { "Joke1", "Joke2", "Joke3", "Joke4" };

        int upper = jokes.GetUpperBound(0);

        int lower = jokes.GetLowerBound(0);


        Random rnd = new Random();

        int jk = rnd.Next(lower, upper + 1);     


        if (Age >= 16)

        {

            Console.WriteLine("Do you want to hear a joke?"); 

            string option = Console.ReadLine();


            if (option == "yes")

            {

                Console.WriteLine(jokes[jk]);

                Console.Read();


                Console.WriteLine("Do you want to hear another joke?");

                string option2 = Console.ReadLine();


                int i; 

                if (option2 == "yes")

                {

                    i = 0;

                }

                else

                {

                    i = 1;

                }


                do

                {

                    Console.WriteLine(jokes[jk]);

                    Console.Read();

                } while (i == 0); 

            } 

            else

            {

                Console.WriteLine("Have a nice day, " + Name);

                Console.Read();

            } 

        }

        else

        {

            Console.WriteLine("What a pitty! You're too young to hear this joke!");

            Console.Read();

            Console.WriteLine("Have a nice day, " + Age);

        }

    }

我不知道,因为我完全被困在这一点上,我们将不胜感激。



蝴蝶刀刀
浏览 188回答 3
3回答

三国纷争

就我个人而言,我会尝试重写代码,使其更具可读性,但这样的事情应该可行:bool keepTellingJokes = true;    while (keepTellingJokes) {    // your joke code here    Console.WriteLine("Do you want to hear another joke?");    string option2 = Console.ReadLine();    // break out of loop    if (option2 == "no")    {        keepTellingJokes = false;    } }// code after escaping joke loop免责声明:我不是每天都写 c#。

红糖糍粑

流程图可以细分为三个主要部分:提出初步问题以决定您是否应该开始讲笑话讲笑话结束程序中间部分(从msgbox "joke()"到msgbox "would you like to hear another joke?")使用do/while循环编码。使它成为一个单独的方法会很有用:private static void TellJokes() {    bool shouldContinue;    do {        shouldContinue = true;        ... // Tell a joke, ask if they liked it, and ask if they want more        if (answer == "no") {            shouldContinue = false;        }    } while (shouldContinue);}请注意,您可以将打印移到"Have a nice day!"程序底部,因为无论如何所有分支最终都会打印它。
打开App,查看更多内容
随时随地看视频慕课网APP