1

マイナスの金額が入力されているかどうかを確認する必要がありますが、変更を加えるたびにエラーが発生します。別のループが必要であることはわかっていますが、ループを挿入してコンパイラが読み取らないdo/whileようにするたびに. これは、作業中のアプリの私のコードです:amount <= 0amount

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);

        }
    }
}
4

2 に答える 2

1

0 ではなく 0.0 と比較する必要があります。

do
{
  Console.WriteLine("Please enter the amount in Euro you want converted into Sterling");
  amount = double.Parse(Console.ReadLine()); 
} while (amount <= 0.0);
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();

ケースごとにこのチェックをメソッドに抽象化して、コードをクリーンアップして削減することはできますが。

于 2013-03-15T02:08:02.233 に答える
0

double と int を比較しようとしていると思います

于 2013-03-15T02:06:03.333 に答える