C#console.write显示语句

luf*_*fee 0 c# if-statement console.writeline

这是我的代码的一部分,我正在尝试使console.write显示"请重新输入大于20的数字:"的新声明.

问题是,当我运行我的代码时,它显示"请重新输入大于20的数字:"以及之前的陈述("输入用于升的燃料量:").在一条线上.

怎么能让它不显示第一个写声明?

static double InputFuel()
    {
        double fFuel;
        string text;
        bool badValue = true;
        do
        {
            Console.Write("Enter amount of fuel used in litres : ");
            text = Console.ReadLine();
            if (double.TryParse(text, out fFuel) && fFuel >= 20)
            {
                badValue = false;
            }
            else
            {
                Console.WriteLine("\n\t {0} is below the minimum value of 20  \n\n", text);
                Console.Write("Please re-enter number greater than 20 : ");
            }
        } while (badValue);
        return fFuel;
    }//end InputTemp
Run Code Online (Sandbox Code Playgroud)

Mar*_*der 5

将线Console.Write("Enter amount of fuel used in litres : ");移到while循环外面.在您的示例中,它位于while循环内部,因此每次输入错误答案时都会重复此循环.如果在循环前移动它,它只会被写入控制台一次.

...
bool badValue = true;
Console.Write("Enter amount of fuel used in litres : ");
do
{
    text = Console.ReadLine();
    ...
Run Code Online (Sandbox Code Playgroud)