【问题标题】:Restart the codeblock with a while-loop使用 while 循环重新启动代码块
【发布时间】:2019-10-16 05:23:33
【问题描述】:

问题:我想在收到错误消息后重新启动我的代码块。

Console.Write("\tBitte geben Sie ihre erste Zahl ein: ");

if (!double.TryParse(Console.ReadLine(), out zahl1))
    Console.WriteLine("\tUngültige Eingabe. Bitte geben Sie nur Zahlen an!");

【问题讨论】:

  • 你试过使用while循环吗?
  • 您是否尝试将其放入 while 循环中?

标签: c# if-statement while-loop do-while application-restart


【解决方案1】:

使用do ... while 循环:

bool error;
do
{
    Console.Write("\tBitte geben Sie ihre erste Zahl ein: ");
    error = !double.TryParse(Console.ReadLine(), out zahl1); 
    if (error)
        Console.WriteLine("\tUngültige Eingabe. Bitte geben Sie nur Zahlen an!");
} while(error);

【讨论】:

    【解决方案2】:

    这很简单:

    Console.Write("\tBitte geben Sie ihre erste Zahl ein: ");
    while (!double.TryParse(Console.ReadLine(), out zahl1))
    {
        Console.WriteLine("\tUngültige Eingabe. Bitte geben Sie nur Zahlen an!");
    
        Console.Write("\tBitte geben Sie ihre erste Zahl ein: ");
    }
    

    你需要确保再次提示用户,否则他们不会知道他们需要输入另一个数字。

    【讨论】:

    • 这不是一个很好的例子。您正在重复代码(Console.Write 调用)
    • @Adrian 对于 OP 的目的,我认为重复一遍就好了,因为他是初学者。了解正在发生的事情要容易得多,以后可以对其进行重构,以包括在一个地方打印出消息。
    【解决方案3】:

    您可以将您的if 更改为while

    Console.Write("\tBitte geben Sie ihre erste Zahl ein: ");
    while (!double.TryParse(Console.ReadLine(), out zahl1))
        Console.WriteLine("\tUngültige Eingabe. Bitte geben Sie nur Zahlen an!");
    

    【讨论】:

    • 这会“工作”,但不会再次提示用户输入数字,因此他们不会知道再次在控制台输入。
    • 你是对的,最后一行的消息可以编辑再问一次(请重试),可惜我不会说德语。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    相关资源
    最近更新 更多