1

私は成績計算を書いています。最後に、計算する別の成績があるかどうかをユーザーに尋ねます。

 Console.Write("Do you have another grade to calculate? ");
        moreGradesToCalculate = Console.ReadLine();
        moreGradesToCalculate = moreGradesToCalculate.ToUpper();

[はい] または [いいえ] のオプションを含むダイアログ ボックスを表示したい。

DialogResult が Yes の場合はプログラムを再度実行し、結果が No の場合は別のことを実行できるようにしたいと考えています。

4

4 に答える 4

1

do...while(...)ループを使用する必要があります。

于 2012-08-12T16:29:34.120 に答える
0

do/while次のような構造を使用できます

do {
     Console.Write("Do you have another grade to calculate Y/N? "); 
     var moreGradesToCalculate = Console.ReadLine().ToUpper();
     if(moreGradesToCalculate == "Y")
        //do something  
     else if(moreGradesToCalculate == "N")
         break;

}while(true);
于 2012-08-12T16:32:35.473 に答える
0

プログラム全体をもう一度実行するのは良い考えではないと思います。成績を計算するための数値を取得し直すだけです (コードをループでラップします)。

DialogBox の場合は、単にSystem.Window.Formsアセンブリをインポートしてこれを使用します。

DialogResult result = MessageBox.Show("Do you want to start over?", "Question", MessageBoxButtons.YesNo);

if (result == DialogResult.No) {
    // TODO: Exit the program
}
于 2012-08-12T16:32:52.160 に答える
0

ダイアログ ボックスが必要な場合は、参照を追加し、ファイルの先頭に同じ名前空間のステートメントをSystem.Windows.Forms追加する必要があります。次に、Do-While ループの最後でオブジェクトのメソッドusingを呼び出した結果を確認するだけです。例えば:ShowMessageBox

do
{
    // Grading calculation work...

}
while (MessageBox.Show("Do you have another grade to calculate?",
    "Continue Grading?", MessageBoxButtons.YesNo) == DialogResult.Yes);

これは、ユーザーが [いいえ] をクリックするまでループし続けます。

マウスを使い続けたくない場合は、コマンドラインで次のようにすべて実行します。

ConsoleKeyInfo key = new ConsoleKeyInfo();
do
{
    // Grading work...

    Console.WriteLine("\nDo you want to input more grades? (Y/N)");
    do
    {
        key = Console.ReadKey();
    }
    while (key.Key != ConsoleKey.Y && key.Key != ConsoleKey.N);
}
while (key.Key == ConsoleKey.Y);

これは、ループに関する参考資料へのリンク、または Microsoft の「反復ステートメント」です。これDo-Whileは、始めたばかりのときに暗記する必要がある数少ないものの 1 つです。

http://msdn.microsoft.com/en-us/library/32dbftby.aspx

于 2012-08-12T17:02:14.973 に答える