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

时间:2019-04-21 15:30:41

标签: c#

我正在尝试完成某种家庭作业,应该要求输入十进制数字。如果用写。而不是文本“您需要使用遵循瑞典标准的(,)写出十进制数字”。

在这里,我希望程序循环返回,因此用户将不得不重试,直到用(,)输入十进制数字为止。

在此之后,程序将询问您要舍入到多少位小数。但是目前,我的程序只是按照瑞典标准输出了您需要使用的文本,之后是文本“您想将其舍入为多少小数位数”,如果有错误,则不会循环第一条语句。

我目前尝试更改一些内容,但通常会导致程序崩溃。我目前使用“其他休息”;到地方,代码尚未完成,但可以正常运行。需要更多代码来完成我的任务,但目前停留在循环问题上

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;
            }
        }

    }
}

我希望程序在执行第一条语句后循环,但是我无法弄清楚为什么不执行该操作以及应该如何解决!

1 个答案:

答案 0 :(得分:0)

用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;
        }
    }

}