如何在 C# 中的 if-else 语句中插入一个循环?

我正在尝试完成我的一种作业,它应该要求一个十进制数。如果用 . 而不是 ,文本“你需要按照瑞典标准用 (,) 写你的十进制数”。


这里我希望程序循环返回,因此用户必须重试,直到用 (,) 输入十进制数。


在此之后,程序将询问您要将其四舍五入到多少位小数。但目前我的程序只是输出你需要使用的文本,根据瑞典标准,后面跟着文本“你想将它四舍五入到多少小数”,如果错误则不循环第一个语句。


我目前尝试更改一些内容,但通常会导致程序崩溃。我目前使用“else break;” 到地方和代码未完成但功能。需要更多代码来完成我的任务,但目前卡在循环问题上


static void Main(string[] args)

        {

            double value1;

            int round1;


            while (true)

            {

                Console.Write("Enter a decimal-number: ");

                string StrValue = Console.ReadLine();


                bool success = Double.TryParse(StrValue, out value1);

                if (!success)

                {

                    Console.WriteLine("You need to use (,) as decimal-sign according to Swedish standard!"); //From here I want a loop if . is used instead of ,

                }


                Console.Write("With how many decimal-numbers do you want to round it down to?: ");

                string StrRound = Console.ReadLine();


                bool success1 = Int32.TryParse(StrRound, out round1);

                if (!success1)

                {

                    Console.WriteLine("Only use whole numbers when rounding");

                }

                else break;

            }

        }


    }

}

我希望程序在第一个语句之后循环,但我不知道为什么它没有以及我应该如何解决这个问题!


慕运维8079593
浏览 90回答 1
1回答

九州编程

用 while 循环替换 if 条件,试试这个:static void Main(string[] args)    {        double value1;        int round1;        while (true)        {            Console.Write("Enter a decimal-number: ");            string StrValue = Console.ReadLine();            bool success = Double.TryParse(StrValue, out value1);            while (!success)            {                 Console.WriteLine("You need to use (,) as decimal-sign according to Swedish standard!"); //From here I want a loop if . is used instead of ,                 StrValue = Console.ReadLine();                 success = Double.TryParse(StrValue, out value1);            }            Console.Write("With how many decimal-numbers do you want to round it down to?: ");            string StrRound = Console.ReadLine();            bool success1 = Int32.TryParse(StrRound, out round1);            if (!success1)            {                Console.WriteLine("Only use whole numbers when rounding");            }            else break;        }    }}
打开App,查看更多内容
随时随地看视频慕课网APP