2021年11月07日
川俣晶の縁側ソフトウェアnew_C#入門・全キーワード明快解説!total 758 count

if/else: 条件判断の切り札

Written By: 川俣 晶連絡先

この章のテーマ §

 条件次第で別の機能を実行するifステートメントを学びます。

 elseキーワードについても説明します。

前提知識 §

Console.Writeメソッド, 文字列の基礎, 変数の基礎, 条件演算子, int型, 複文, 空文, for文

解説 §

 条件によって動作を変えたいときがあります。たとえば、【キャンペーン商品なら値引きする】などの処理を行う時です。

 そのような場合はifステートメントを使用できます。

 ifステートメントは"if(条件式) 文"のように使い、条件式が真(true)の時だけ文を実行します。

 条件式が成り立たないときは実行しません。

 たとえば、if (a > b) 文ならば、bよりもaが大きい時だけ文を実行します。

 elseキーワードを追加すると、条件不成立の時に実行する文も指定できます。

 サンプルソースのelse使用例を見て下さい。

罠の数々 §

 カッコの後に"if( 式 ); 文"とセミコロンを入れるとエラーにはなりませんが文は常に実行されて条件が判断されません。

 こうなる理由は、セミコロンが空文という一つの文だからです。条件次第で何もしない空文を実行したりしなかったりしますが、実行しても何もしないので、結果は変化しません。この場合の後続する文はifステートメントと関係ない後続する文なので、常に実行されます。

 また、"if(条件式1) if(条件式2) 文1 else 文2"というコードも要注意です。この場合のelseは後の方のifに対するelseとして機能しますが、しばしば前の方のifに対応するelseだと思い込んでバグを発生させることがあります。これを阻止するには波括弧を入れて複文扱いにすると良いでしょう。"if(条件式1) { if(条件式2) 文1 } else 文2"と書けばelseは最初のifに対応します。しかし、そもそも最初から紛らわしいif文を書かないのがお勧めです。

参考リンク §

選択ステートメント (C# リファレンス)

サンプルソース: kw_if §

int a = 1;

int b = 2;

// if文を使う・実行されないとき

if (a > b) Console.WriteLine("aはbより大きい。");

// if文を使う・実行されるとき

if (b > a) Console.WriteLine("bはaより大きい。");

// エラーにならないが間違った例

if (a > b) ; Console.WriteLine("aはbより大きい。(間違った例)");

// elseも使う

for (int i = 1; i < 3; i++)

{

    if (i > 1)

    {

        Console.WriteLine($"変数i({i})は1より大きい。");

    }

    else

    {

        Console.WriteLine($"変数i({i})は1と同じか1より小さい。");

    }

}

実行結果 §

bはaより大きい。

aはbより大きい。(間違った例)

変数i(1)は1と同じか1より小さい。

変数i(2)は1より大きい。

リポジトリ §

https://github.com/autumn009/CSharpPrimer2

練習問題 §

 以下のプログラムの実行結果を予測してみよう。

for (int i = 0; i < 3; i++)

{

    if (i == 0) Console.Write("One, ");

    else if (i == 1) Console.Write("two, ");

    else Console.WriteLine("Three");

}

[[解答]]

Facebook

キーワード【 川俣晶の縁側ソフトウェアnew_C#入門・全キーワード明快解説!
【new_C#入門・全キーワード明快解説!】の次のコンテンツ
2021年
11月
08日
値型と参照型: C#のデータで間違わない切り札
3days 0 count
total 1012 count
【new_C#入門・全キーワード明快解説!】の前のコンテンツ
2021年
11月
07日
【new_C#入門・全キーワード明快解説!】について
3days 0 count
total 829 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

https://mag.autumn.org/tb.aspx/20211107110403
サイトの表紙【new_C#入門・全キーワード明快解説!】の表紙【new_C#入門・全キーワード明快解説!】のコンテンツ全リスト 【new_C#入門・全キーワード明快解説!】の入手全リスト 【new_C#入門・全キーワード明快解説!】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.