1
我需要帮助检查是否输入了负值,但每次进行更改时都会收到错误。我知道我需要另一个do/while
循环,但是每当我把一个amount <= 0
写入,编译器就不会读取amount
。这是我工作的应用程序的代码:如何检查是否输入负数
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
double cur1 = 0.85972;
double cur2 = 1.16316;
double cur3 = 1.30246;
double cur4 = 0.76777;
double cur5 = 0.66010;
double cur6 = 1.51409;
double amount;
double total;
int input = 1;
Console.WriteLine("1. Euro to Sterling");
Console.WriteLine("2. Sterling to Euro");
Console.WriteLine("3. Euro to Dollar");
Console.WriteLine("4. Dollar to Euro");
Console.WriteLine("5. Dollar to Sterling");
Console.WriteLine("6. Sterling to Dollar");
Console.WriteLine("7. Exit");
do
{
if (input == 0 || input > 8)
Console.WriteLine("You have entered an invalid Option please choose again " + input + " is not allowed");
Console.WriteLine("Please Enter your selection 1-6 and 7 to quit:");
input = int.Parse(Console.ReadLine());
if (input == 1)
{
Console.WriteLine("Please enter the amount in Euro you want converted into Sterling");
amount = double.Parse(Console.ReadLine());
total = amount * cur1;
Console.WriteLine("The amount of {0} Euros in Sterling at exchange rate {1} is = {2}", amount, cur1, total);
Console.WriteLine("Press return to go back to the Menu");
Console.ReadKey();
}
else if (input == 2)
{
Console.WriteLine("Please enter the amount in Sterling you want converted into Euro");
amount = double.Parse(Console.ReadLine());
total = amount * cur2;
Console.WriteLine("The amount of {0} Sterling in Euros at exchange rate {1} is = {2}", amount, cur2, total);
Console.WriteLine("Press return to go back to the Menu");
Console.ReadKey();
}
else if (input == 3)
{
Console.WriteLine("Please enter the amount in Euro you want converted into Dollar");
amount = double.Parse(Console.ReadLine());
total = amount * cur3;
Console.WriteLine("The amount of {0} Euros in Dollars at exchange rate {1} is = {2}", amount, cur3, total);
Console.WriteLine("Press return to go back to the Menu");
Console.ReadKey();
}
else if (input == 4)
{
Console.WriteLine("Please enter the amount in Dollar you want converted into Euro");
amount = double.Parse(Console.ReadLine());
total = amount * cur4;
Console.WriteLine("The amount of {0} Dollars in Euro at exchange rate {1} is = {2}", amount, cur4, total);
Console.WriteLine("Press return to go back to the Menu");
Console.ReadKey();
}
else if (input == 5)
{
Console.WriteLine("Please enter the amount in Dollar you want converted into Sterling");
amount = double.Parse(Console.ReadLine());
total = amount * cur5;
Console.WriteLine("The amount of {0} Dollars in Sterling at exhange rate {1} is = {2}", amount, cur5, total);
Console.WriteLine("Press return to go back to the Menu");
Console.ReadKey();
}
else if (input == 6)
{
Console.WriteLine("Please enter the amount in Sterling you want converted into Dollar");
amount = double.Parse(Console.ReadLine());
total = amount * cur6;
Console.WriteLine("The amount of {0} Sterling in Dollars at exhange rate {1} is = {2}", amount, cur6, total);
Console.WriteLine("Press return to go back to the Menu");
Console.ReadKey();
}
} while (input != 7);
}
}
}
欢迎来到Stackoverflow!请花时间将所有这些代码缩减为最基本的要素以重现您的问题。我怀疑有人会想通读这一点。谁知道,也许这会让你发现问题。 – MPelletier 2013-03-15 02:06:17
你是什么意思编译器不会读'数量'? – 2013-03-15 02:06:34
_为什么你需要这样做。负值的转换仍然有效。如果用户输入-1美元并返回-1.03澳元,那么问题是什么? – paxdiablo 2013-03-15 02:13:48