4. C#の条件分岐 チートシート

if文(elseなし)

if文を使うと条件によって処理を分けられる。
条件が成立したときはifブロック内が実行される。
成立しないときは何も実行されない。

var line = Console.ReadLine(); //キー入力
var num = int.Parse(line); //数値に変換
if (num == 5) //もし入力が5なら
{
    Console.WriteLine("5が入力されました"); //成立した場合に実行
}
5 //5を入力
5が入力されました

if-else文(二者択一)

var line = Console.ReadLine(); //キー入力
var num = int.Parse(line); //numにキー入力を代入

//numを2で割った余りが0ならば
if (num % 2 == 0)
{ 
    Console.WriteLine("偶数");
}

//そうでないならば
else
{
    Console.WriteLine("奇数");
}
5 //5を入力
奇数

if文の入れ子

string inputX = Console.ReadLine(); //キー入力1回目
int x = int.Parse(inputX);

string inputY = Console.ReadLine(); //キー入力2回目
int y = int.Parse(inputY);

if(x == 0) //キー入力1回目が0ならば
{
    Console.WriteLine("xは0");
    if(y == 0) //キー入力2回目も0ならば
        {
            Console.WriteLine("yも0");        
        }
}
0 //キー入力1回目
0 //キー入力2回目
xは0
yも0

関係演算子(比較)

演算子意味
==等しいx == y (xとyは等しい)
!=等しくないx != y (xとyは等しくない)
<小さいx < y (xはyより小さい)
>大きいx > y (xはyより大きい)
<=以下x <= y (xはy以下)
>=以上x >= y (xはy以上)

例1. 数値の比較

var line = Console.ReadLine();
var num = int.Parse(line);

if (num >= 15) //変数numが15以上か
{
    Console.WriteLine("num >= 15が成り立ちました。");    
    Console.WriteLine($"numの値は{num}です。");
}
20 //キー入力
num >= 15が成り立ちました。
numの値は20です。

例2. 文字列の比較

var lang = Console.ReadLine();

if (lang == "c#") // langがc#ならば
{
    Console.WriteLine("langの値は「c#」です。");
}

if(lang != "Java") // langがJavaでないならば
{
    Console.WriteLine("langの値は「Java」ではない。");
}
c# // キー入力
langの値は「c#」です。
langの値は「Java」ではない。

論理演算子(かつ/または/否定)

演算子意味
&&かつ (AND)a == 1 && b ==2
||または (OR)a == 1 || b ==2
!否定 (NOT)! (a == 1)

例1. if文で数値が範囲内か調べる(&&、かつ)

var month = 7;
if (1 <= month && month <= 10)
{
    Console.WriteLine("1以上、10以下の数値です");
}
1以上、10以下の数値です

例2. if文でどちらかが成り立つか調べる(|| 、または)

var num = 16;

if (num % 5 == 0 || num % 8 == 0) //%は余りが0になるか調べる
{
    Console.WriteLine("numは5か8で割り切れます");
}
numは5か8で割り切れます

3つ以上の分岐にはswitch文が便利

if文を使うと処理を2つに分岐できるものの、3つ以上の分岐にはif文だと複雑になるため、switch文を使った方がより簡単に記述できる。

breakは処理を中断するという意味。成立した場合にはswitch文から抜け出す。

例1. 整数型(int)で多分岐処理させる

Console.WriteLine("ご希望のメニューを番号で入力して下さい");
Console.WriteLine("1: カレーライス");
Console.WriteLine("2: エビフライ丼");
Console.WriteLine("3: 卵とじそば");
var line = Console.ReadLine();
var value = int.Parse(line); //キー入力を整数型に変換してvalueに代入

switch (value) //キー入力から分岐
{
    case 1:
        Console.WriteLine("カレーライスですね。");
        break; //処理を中断してswitch文から抜け出す
    case 2: 
        Console.WriteLine("エビフライ丼ですね。");
        break;
    case 3: Console.WriteLine("卵とじそばですね。");
        break;
    default:
        Console.WriteLine("入力に誤りがあります。");
        break;
}
ご希望のメニューを番号で入力して下さい
1: カレーライス
2: エビフライ丼
3: 卵とじそば
2 //キー入力
エビフライ丼ですね。

例2. 文字列型(string)で多分岐処理させる

var word = Console.ReadLine(); //キー入力
var term = "";

switch (word)
{
    case "アイス":
        term = "アイスクリーム";
        break;
    case "チョコ":
        term = "チョコレート";
        break;
    case "ポテチ":
        term = "ポテトチップス";
        break;
}

if(term != "") //!=で空文字でないか調べ、上の3つのどれかなら正式用語termを表示する
{ 
    Console.WriteLine("{0}は{1}の略です。", word, term); 
}
else //空文字化か入力した文字列が登録にない場合
{
    Console.WriteLine("登録にありません。");
}
ポテチ //キー入力
ポテチはポテトチップスの略です。

else if構文を使った多分岐処理

ある変数が指定した範囲内にあるか調べて、処理を複数に分岐したい場合などに使う(switch文ではできない)。

var height = 165;

if (height >= 180)
{
    Console.WriteLine("高身長です");
}
else if (height >= 160) //ここが165の場合に実行される処理
{
    Console.WriteLine("平均的な身長です");
}
else if (height >= 150)
{
    Console.WriteLine("低身長です");
}

//このブロックは省略可能。いずれの条件にも該当しない時の処理
else
{
    Console.WriteLine("いずれでもない");
}
平均的な身長です
タイトルとURLをコピーしました