我有下面的代码,它一次返回2个参数。也就是说,如果我输入-25,我会得到两个结果,其中我只想要一个以0的速率得到"0“的结果。

static void Main(string[] args)
{
const decimal fifty = 7.25M;
const decimal hundred = 15.75M;
const decimal overhundred = 21.50M;
decimal sumfifty = 0.0M;
decimal sumhundred = 0.00M;
decimal sumoverhundred = 0.00M;
decimal sentinel;
WriteLine("\n*** PROBLEM 4 ***\n");
do
{
Write("How many pieces? ");
Write("Enter any whole number or -999 to quit: ");
stenter code herering input = ReadLine();
sentinel = Convert.ToDecimal(input);
sumfifty = sentinel * fifty;
sumhundred = sentinel * hundred;
sumoverhundred = sentinel * overhundred;
if (sentinel >= -998 && sentinel <= 0)
{
WriteLine("At 0 pieces at $0.00 per piece, you've earned $0.00.");
}
if (sentinel >= 1 && sentinel <= 49)
{
WriteLine("At {0} pieces at {1} per piece, you've earned {2}.\n", sentinel, fifty, sumfifty);
}
else if (sentinel >= 50 && sentinel <= 100)
{
WriteLine("At {0} pieces at {1} per piece, you've earned {2}.\n", sentinel, hundred, sumhundred);
}
else
{
WriteLine("At {0} pieces at {1} per piece, you've earned {2}.\n", sentinel, overhundred, sumoverhundred);
}
} while (sentinel != -999);
WriteLine("\nThanks for using our system.");
Write("Press any key to continue...");
ReadKey();
}发布于 2017-10-29 08:29:53
在第二个条件语句中使用else if而不是if。
if (sentinel >= -998 && sentinel <= 0)
{
WriteLine("At 0 pieces at $0.00 per piece, you've earned $0.00.");
}
else if (sentinel >= 1 && sentinel <= 49)
{
WriteLine("At {0} pieces at {1} per piece, you've earned {2}.\n", sentinel, fifty, sumfifty);
}
else if (sentinel >= 50 && sentinel <= 100)
{
WriteLine("At {0} pieces at {1} per piece, you've earned {2}.\n", sentinel, hundred, sumhundred);
}
else
{
WriteLine("At {0} pieces at {1} per piece, you've earned {2}.\n", sentinel, overhundred, sumoverhundred);
}https://stackoverflow.com/questions/46995760
复制相似问题