講義メモ:第5章 制御文

p.101 制御文とは

・C#のプログラムは3つの構造の組み合わせで記述する。それが「順次」「分岐」「繰返し」
・例外的な状況に対応できるもう一つの制御が「ジャンプ」で、一部を除いて非推奨とされている
・この「分岐」「繰返し」「ジャンプ」を行うのが制御文

p.101 if文

・条件分岐を行える構文でいくつかのパターンがある
・基本構文: if(条件文) { 条件文がtrueである時に実行する文 }
・条件文にはbool型の変数または式を記述できるので、主に、関係演算子(p.88)の文を用いることが多い
・例: 
 if(a > 0) { 
   Console.WriteLine("aは正の数です"); 
 }
・条件文がtrueである時に実行する文が1文のみの場合、{}を省略できる
 ※ 省略することを禁止するチームルールの場合もある
・通常、「{」の後と、「}」の前に改行を入れて、その間をインデント(字下げ)するので、Visual Studioに自動的に行う機能が入っている
 ※ Visual Studioの既定では「{」の前にも改行を自動挿入するが、利用者が設定を変えることができる。
・条件文がtrueである時に実行する文は複数記述できるが、{}は省略できないので注意
 例: if (a > 0) b = 100; c = 200; ⇒ if (a > 0) {b = 100}; c = 200; と解釈される。

p.102(if-else構文)

・if文に「そうでなければ」を加える構文
・基本構文: if(条件文) { 条件文がtrueである時に実行する文 } else { 条件文がfalseである時に実行する文 }
・例: 
 if(a > 0) { 
   Console.WriteLine("aは正の数"); 
 } 
 else { 
   Console.WriteLine("aは負の数か0"); 
 }
・条件文がtrue/falseである時に実行する文が1文のみの場合、{}を省略できる
 ※ 省略することを禁止するチームルールの場合もある。特に片方だけ省略は避けた方が良い
・elseはifの1個につき1個のみ記述でき、ifのないelseはエラーになる
・条件文がfalseである時に実行する文も複数記述できるが、{}は省略できないので注意
・なお、if-else構文によってなんらかの値を定めるような処理は条件演算子でも書ける
・例: Console.WriteLine((a > 0) ? "aは正の数": "aは負の数か0"); 

p.102(if-else if構文)

・if文に「そうでなくて、もしも」を加える構文
・基本構文: 
 if(条件文①) { 条件文①がtrueである時に実行する文 } 
 else if(条件文②) { 条件文①がfalseで条件文②がtrueである時に実行する文 }
・例: if(a > 0) { Console.WriteLine("aは正の数"); } else if(a < 0) { Console.WriteLine("aは負の数"); }
・else ifはifの1個につきいくつでも記述でき、ifのないelse ifはエラーになる
・よって、多分岐構文が可能
・例: 
 if(a == 0) { 
   Console.WriteLine("aは0"); 
 }
 else if(a == 1) { 
   Console.WriteLine("aは1"); 
 }
 else if(a == 2) { 
   Console.WriteLine("aは2"); 
 }
・最後のelse ifの後に、elseを書いて「上記のどれでもなければ」を加えることが出来る
・例: 
 if(a == 0) { 
   Console.WriteLine("aは0"); 
 }
 else if(a == 1) { 
   Console.WriteLine("aは1"); 
 }
 else if(a == 2) { 
   Console.WriteLine("aは2"); 
 }
 else { 
   Console.WriteLine("aは0でも1でも2でもない"); 
 }

アレンジ演習:p.104 if01.cs

・nの値を10固定ではなくて、コンソールから入力するようにしよう

作成例

//アレンジ演習: p.104 if01.cs
using System;
class if01
{
    public static void Main()
    {
        int n;
        //n = 10;
        Console.Write("n : "); n = int.Parse(Console.ReadLine()); //【変更】nを入力
        if (n > 5) { //式「n > 5」の評価がtrueなら後続のブロック内を実行
            Console.WriteLine("nは5より大きい");
        } 
        else { //falseなら後続のブロック内を実行
            Console.WriteLine("nは5より大きくはない");
        }
    }
}

アレンジ演習:p.104 if01.cs・その2

・「nは5より大きくはない」ではなく、nの値が5の場合は「nは5」、5未満の場合は「nは5より小さい」と表示しよう
・つまり、3分岐構造にしよう

作成例

//アレンジ演習: p.104 if01.cs その2
using System;
class if01
{
    public static void Main()
    {
        int n;
        //n = 10;
        Console.Write("n : "); n = int.Parse(Console.ReadLine()); //【変更】nを入力
        if (n > 5) { //式「n > 5」の評価がtrueなら後続のブロック内を実行
            Console.WriteLine("nは5より大きい");
        } 
        else if (n < 5) { //上記がfalseで式「n < 5」の評価がtrueなら後続のブロック内を実行
            Console.WriteLine("nは5より小さい");
        } 
        else { //上記の両方がfalseなら後続のブロック内を実行
            Console.WriteLine("nは5");
        }
    }
}

提出:アレンジ演習:p.104 if01.cs・その3

・比較対象の値も5固定ではなくて、コンソールから入力するようにしよう

コメントを残す

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