我在c#中創建一個程序,將獲取項目的名稱和該項目的數量,並將計算項目的總量。嘗試捕捉返回到特定的代碼行在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...");
}
這是整個CONTEX:
這是我的全部代碼。
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;
}
也許你應該使用輔助方法和'TryParse'而不是'Parse'。 – dcg
你可以粘貼整個上下文嗎?它看起來像你在一些循環中運行此代碼... – tdragon
因爲您正在使用'Console.Write(...)'而不是'Console.WriteLine(...)'作爲您的提示,所以您的後續解析試圖解析提示+迴應? – ne1410s