【发布时间】:2018-05-09 13:19:20
【问题描述】:
所以我的程序打算无限次运行,直到用户输入 -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);
}
}
}
}
【问题讨论】:
-
顺便说一句,当您使用
while时,您应该使用标志来退出循环...while(continue)并在某些时候continue = false。 -
@MatíasFidemraizer OP 已经有一个
break声明。前面的逻辑是否正确是完全不同的情况;) -
你试过用
Console.ReadLine()代替Console.Read()
标签: c# loops while-loop