我在c#中创建一个程序,它将获取项目名称和该项目的数量,并计算项目的总数量。
我的问题是每当我在“输入项目数量:”中输入无效输入时,它会返回到代码的第一行并再次询问项目名称,什么如果我这样做,我可以继续而不重复我的代码的第一行吗?
我对我的问题进行了很多研究,但我找不到问题的答案。
try
{
Console.Write("Enter the name of the item:");
name = Console.ReadLine();
Console.Write("Enter the quantity of item:");
numOfItm = double.Parse(Console.ReadLine());
totalItems += numOfItm;
Console.Write("Enter the price of the item:");
priceOfItm = double.Parse(Console.ReadLine());
totalPrice = priceOfItm * numOfItm;
Console.WriteLine("Total amount for " + name + " is:" + totalPrice);
totalPriceOfItems += totalPrice;
}
catch
{
Console.WriteLine("Please enter a valid input...");
}
这是整个情况:
这是我的全部代码。
double numOfItm, priceOfItm, totalPriceOfItems=0, discount, totalPrice,totalItems=0;
string name, compute="";
while(compute != "total")
{
try
{
Console.Write("Enter the name of the item:");
name = Console.ReadLine();
Console.Write("Enter the quantity of item:");
numOfItm = double.Parse(Console.ReadLine());
totalItems += numOfItm;
Console.Write("Enter the price of the item:");
priceOfItm = double.Parse(Console.ReadLine());
totalPrice = priceOfItm * numOfItm;
Console.WriteLine("Total amount for " + name + " is:" + totalPrice);
totalPriceOfItems += totalPrice;
}
catch
{
Console.WriteLine("Please enter a valid input...");
}
if (compute == "total")
{
discount = (totalPriceOfItems / 100) * 10;
Console.WriteLine("The total number of items:" + totalItems);
Console.WriteLine("The total amount of all items you purchased:" + totalPriceOfItems);
Console.WriteLine("discount amount:" + discount);
Console.WriteLine("Total amount to pay:" + (totalPriceOfItems - discount));
Console.ReadLine();
}
else
{
continue;
}
答案 0 :(得分:2)
您可以将每个参数输入放在它自己的循环中,直到获得有效值
int quantity;
while (int.TryParse(Console.ReadLine(), out quantity) == false)
{
Console.WriteLine("Please enter valid quantity");
}
答案 1 :(得分:0)
你不能真正避免为每个输入拆分try块,因为catch并不知道哪个Parse失败了。
如果您坚持使用单个块,那么您可以添加一个状态变量来监视到目前为止哪些输入成功。