Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 而循环只是重复_C#_Loops_While Loop - Fatal编程技术网

C# 而循环只是重复

C# 而循环只是重复,c#,loops,while-loop,C#,Loops,While Loop,因此,我的程序将无限次运行,直到用户输入-999。在当前设置中,输入任何数字时发生的所有情况都是,它会输出所有文本并忽略输入的内容 static void Main(string[] args) { //Local Variable Declaration// const double rate1 = 10; const double rate2 = 3; const double maxCharge = 50;

因此,我的程序将无限次运行,直到用户输入-999。在当前设置中,输入任何数字时发生的所有情况都是,它会输出所有文本并忽略输入的内容

    static void Main(string[] args)
    {
        //Local Variable Declaration//

        const double rate1 = 10;
        const double rate2 = 3;
        const double maxCharge = 50;
        double charge;
        int hoursRented;


        while (true)
        {
            Console.WriteLine("Enter number of hours (-999 to quit) : ");
            hoursRented = Console.Read();
            if (hoursRented == -999)
                break;

            else

                if (hoursRented <= 3)
            {
                charge = hoursRented * rate1;
            }
            else
            {
                charge = (3 * rate1) + ((hoursRented - 3) * rate2);
            }

            if (charge > maxCharge)
            {
                charge = maxCharge;
            }

            Console.WriteLine("Are you a member? (Y/N) : ");
            string memberStatus = Console.ReadLine();
            string upperstring = memberStatus.ToUpper();
            if (memberStatus.Equals("Y"))
            {
                charge = charge - (charge * 1 / 10);
            }

            double TotalCharge = +charge;

            Console.WriteLine("Customer Charge : {0}   Total Charge To Date {1} :  ", charge, TotalCharge);
        }
    }
}

}

从Console文档开始。阅读:

从标准输入流中读取下一个字符

该方法只读取单个字符。要读取整行,请改用:


顺便说一句,当你打算使用标志退出循环时。。。whilecontinue和在某个点continue=false。@Matíasfidemrazier OP已经有一个break语句。上述逻辑是否正确则完全不同;您是否尝试过使用Console.ReadLine而不是Console.Read
int hours;
if(int.TryParse(Console.ReadLine(), out hours) && hours == -999)
    break;