講義メモ 後半

p.122 while文

・if文を第2要素のみにした繰り返し構文がwhile文
・よって「回数指定の繰り返し」ならforを、回数が決まらない繰り返しならwhileを用いると良い
・書式: while(継続条件){…}
・なお、for文とwhile文は繰り返しの1回目の前に継続条件のチェックをするので、前判定繰り返しという。
・前判定繰り返しは1度も実行しない可能性のある繰り返しを表現できる。

p.124 while01.cs

//p.124 while01.cs
using System;
class while01
{
    public static void Main()
    {
        int i = 0;
        while (i < 100) { //変数iの値が100未満である間、以下を繰返す
            Console.WriteLine("i = {0,3}", i); //0から99までを3桁で表示
            i++; //インクリメントする
        }
    }
}

アレンジ演習:p.124 while01.cs ⇒ whilefor01.cs

・for文で書き直そう

作成例

//アレンジ演習:p.124 while01.cs ⇒ whilefor01.cs
using System;
class while01
{
    public static void Main()
    {
        for (int i = 0; i < 100; i++) { //変数iの値を0から100未満である間、+1しながら、以下を繰返す
            Console.WriteLine("i = {0,3}", i); //0から99までを3桁で表示
        }
    }
}

p.124 条件式は必ずbool型

・for文の第2要素(継続条件)および、while文、do-while文の継続条件には、bool型の変数または式のみ記述できる
・よって、bool型を返す演算子である関係演算子の式を用いることが多い。
・なお、C/C++では整数値でbool型を代用できるため「while(1)」などの表記が可能だが、C#では文法エラーになる

p.125 while文を使った無限ループ

・無限ループはfor文の第2要素の省略で可能だが、第1要素も第3要素も省略した「for(;;)」を用いる代わりに、
「while(true)」とする方が分かりやすい。
・なお、繰り返し文の中でbreakを実行することで、ループを抜けられるが、switch-case文のbreak文はswitch構造の一部なので、
 ループは抜けないので注意
・また、2重ループの内側のループの中でbreakを実行すると、内側のループのみを抜けるので、外側のループは続行になる

p.125 menu01.cs

//p.125 menu01.cs
using System;
class menu01
{
    public static void Main()
    {
        bool bEnd = false; //bool型の変数で表した終了フラグをオフにする
        while (true) { //無限ループ
            Console.WriteLine("***** Menu *****");
            Console.WriteLine("0:終了");
            Console.WriteLine("1:ファイル");
            Console.WriteLine("2:編集");
            Console.WriteLine("****************");
            Console.Write("選択---- ");
            string strAns = Console.ReadLine();
            switch (strAns) { //入力された文字列に応じて分岐
                case "0":  //0:終了
                    bEnd = true; //終了フラグをオンにする
                    break; //switch構造を抜ける(繰返しは抜けない)
                case "1":  //1:ファイル
                    Console.WriteLine("ファイルが選択されました");
                    break; //switch構造を抜ける(繰返しは抜けない)
                case "2":  //2:編集
                    Console.WriteLine("編集が選択されました");
                    break; //switch構造を抜ける(繰返しは抜けない)
                default:
                    Console.WriteLine("入力に間違いがあります");
                    break; //switch構造を抜ける(繰返しは抜けない)
            }
            Console.WriteLine(); //改行
            if (bEnd) { //「if (bEnd == true)」と同じ意味:終了フラグがオン?
                Console.WriteLine("それでは、このプログラムを終了します");
                break; //繰り返しを抜ける
            }
        }
    }
}

提出:アレンジ演習:p.125 menu01.cs

・終了フラグ「bool bEnd = false;」を用いずに同じ処理になるようにしよう

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です