为了账号安全,请及时绑定邮箱和手机立即绑定

C#中的连续循环

C#中的连续循环

C#
蝴蝶刀刀 2021-07-06 13:54:58
我最近开始学习 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);        }    }我不知道,因为我完全被困在这一点上,我们将不胜感激。
查看完整描述

3 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

就我个人而言,我会尝试重写代码,使其更具可读性,但这样的事情应该可行:


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#。


查看完整回答
反对 回复 2021-07-10
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

流程图可以细分为三个主要部分:

  1. 提出初步问题以决定您是否应该开始讲笑话

  2. 讲笑话

  3. 结束程序

中间部分(从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!"程序底部,因为无论如何所有分支最终都会打印它。


查看完整回答
反对 回复 2021-07-10
  • 3 回答
  • 0 关注
  • 187 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信