0

ユーザーがオプションを選択した後、このプログラムを実行し続けるにはどうすればよいですか?これが私がこれまでに持っているコードです。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace calculator_extended
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Press A for addition");
            Console.WriteLine("Press S for subtraction");
            Console.WriteLine("Press M for Multiplication");
            Console.WriteLine("Press D for Divide");

            char c = Convert.ToChar(Console.ReadLine());

            int a = Convert.ToInt32(Console.ReadLine());
            int b = Convert.ToInt32(Console.ReadLine());

            switch (c)
            {
                case 'A':
                case 'a':
                    {
                        int d = add(a, b);
                        Console.WriteLine(d);
                        break;


                    }


                case 'S':
                case 's':
                    {
                        int d = sub(a, b);
                        Console.WriteLine(d);
                        break;
                    }

                case 'M':
                case 'm':
                    {
                        int d = mul(a, b);
                        Console.WriteLine(d);
                        break;
                    }

                case 'E':
                case 'e':
                    {
                        int d = div(a, b);
                        Console.WriteLine(d);
                        break;
                    }
                default:
                    {

                        Console.WriteLine("Please Enter the correct Character");
                        break;
                    }


            }
        }
            private static int add(int a, int b)
    {

                   return a + b;
    }
               private static int sub(int a, int b)
    {

                   return a - b;
    }
               private static int mul(int a, int b)
    {
                   return a * b;
    }
               private static int div(int a, int b)
    {

                   return a / b;
    }

        }
    }
4

6 に答える 6

6

コードを次のようにラップします

while(true) {
    // Your code here

    // Don't forget to add a switch case for an Exit operation
    case 'q':
        Application.Exit();
}

プログラミングに不慣れな場合は、ループを調べる必要があります-リスト4-2を参照してください-これは、達成しようとしていることの良い例です。

編集:私はあなたがプログラミングに不慣れであることを理解しています、そして私あなたがあなた自身でこれを達成するべきだと思います。これは基本的な問題なので、ここに完全な解決策があります

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace calculator_extended
{
    class Program
    {
        static void Main(string[] args)
        {
            int d = 0;

            while (true)
            {
                Console.WriteLine("Press A for addition");
                Console.WriteLine("Press S for subtraction");
                Console.WriteLine("Press M for Multiplication");
                Console.WriteLine("Press D for Divide");

                char c = Convert.ToChar(Console.ReadLine());

                int a = Convert.ToInt32(Console.ReadLine());
                int b = Convert.ToInt32(Console.ReadLine());

                switch (c)
                {
                    case 'A':
                    case 'a':
                        d = add(a, b);
                        Console.WriteLine(d);
                        break;
                    case 'S':
                    case 's':
                        d = sub(a, b);
                        Console.WriteLine(d);
                        break;
                    case 'M':
                    case 'm':
                        d = mul(a, b);
                        Console.WriteLine(d);
                        break;
                    case 'E':
                    case 'e':
                        d = div(a, b);
                        Console.WriteLine(d);
                        break;
                    case 'q':
                    case 'Q':
                        Application.Exit();
                    default:
                        Console.WriteLine("Please Enter the correct Character");
                        break;
                }
            }
        }
        private static int add(int a, int b)
        {

            return a + b;
        }
        private static int sub(int a, int b)
        {

            return a - b;
        }
        private static int mul(int a, int b)
        {
            return a * b;
        }
        private static int div(int a, int b)
        {

            return a / b;
        }

    }
}
于 2012-08-13T09:17:43.720 に答える
1

まず、プログラムを続行するには、while(true)ループ、またはdo {} while(キーが押された)ループにラップする必要があります。とにかくオプションのリストに5番目のオプションを追加する必要があります^^(これは終了オプションになります)

私はあなたの問題を解決するために、あなたには2つの選択肢があると信じています:

  1. while(true)ループの使用

    main()メソッドのすべてのコードはwhile(true)ループにラップされます。それが終わったら、他のキー(A、S、M、D)と同じように、終了キーを読み取り、適切な終了メソッドに送信します。この「exitメソッド」は、メイン関数の外部で作成されます。完了すると、次のようになります。

    static void Main(string args[])
    {
        Console.WriteLine("Press A for addition");
        Console.WriteLine("Press S for subtraction");
        Console.WriteLine("Press M for Multiplication");
        Console.WriteLine("Press D for Divide");
        Console.WriteLine("Press X to exit");
        //... all the stuff up to the switch
        switch(c)
        {
            //all the cases from before
            case 'x' : exitMethod();break;
        }
    }
    private static void exitMethod()
    {
        Application.Exit();
    }
    
  2. do-whileループを使用する

main()メソッドのすべてのコードは、do--whileループでラップされます。はい、while(true)ループを使用するのと似ていますが、今回はwhileのステートメントを変更する必要があります。次のようになります。

    do { // here is all the code in main() 
    }while(Console.ReadKey(true).Key != ConsoleKey.X);

そして、これはdo--whileループです。プログラムはdowhileループからジャンプして、現在のように(通常は)閉じるため、特別なexitメソッドを呼び出す必要はありません。

正直なところ、キーの組み合わせも処理できるため、do-whileループを使用したいと思います。詳細については、次のリンクにアクセスしてください:http: //www.dotnetperls.com/console-readkey

于 2012-08-13T10:03:37.877 に答える
0

コードをdo block

        char c = '';
        do
        {
            c = ...
        }
        while (c != 'q');
于 2012-08-13T09:22:53.280 に答える
0

これはループで解決できます。私は通常、この種のコンソールアプリケーションにDo...Whileループを使用します。

あなたは学習中にこれらのことに遭遇するでしょう...私はあなたがまだ完了するスキルを持っていないコードを書くことを試みる前にあなたがしているどんなガイド付き学習コースにも従い続けることを提案します。

于 2012-08-13T09:18:29.250 に答える
0

whileループの使用を調べる必要があります。これは、特定の条件が満たされるまで、つまり計算が選択されてから最初の値が入力され、次に2番目の値が入力されるまで、プログラムがループを継続するためにここで使用するものです。 。何かのようなもの:

static void Main(string[] args)
{
    // main loop to keep your program alive
    while (true)
    {
        // handle your program logic
    }
}
于 2012-08-13T09:20:45.000 に答える
0

不十分なwhileまたはdowhileループ、infinte forループによる関数呼び出しを使用して、gotoコマンドによる反復の任意の手法を使用できます。

于 2012-08-13T09:46:23.087 に答える