if文の使い方を知りたい。。。
この記事では、C# の if 文の使い方をサンプルコードを交えて分かりやすく解説ています。
if 文は使用頻度が高く、目にする機会も多く、コーディングする際は必ずと言っていいほど使うことでしょう。
条件分岐の使い方や条件分岐を複数回行う方法などを紹介していますので、ぜひ参考にしてみて下さい。
オススメの参考書
C#の使い方が丁寧に解説しており、「基礎からしっかりと学びたい」という初心者の方にオススメの一冊です。サンプルコードも記載してあり、各章の最後に復習問題があるので理解度を確認しながら読み進めることができます。新しい C# のバージョンにも対応している書籍です。
if文とは
C# の if文は、条件に基づいてプログラムを分岐するために使います。
具体的にいうと「○○が△△なら、処理Aをする(○○が△△でないなら、処理 Bを実行する)」というような場面で使います。
フローチャートで表現すると次のようになります。
if文の基本構文
if 文は次のような構文になっています。
if(条件式)
{
処理A
}
else
{
処理B
}
if 文のポイントは次の通りです。
- if 文で指定した条件に一致する(true)場合、ブロック内部の処理Aが実行され、if 文の処理を抜けます。
- if 文で指定した条件に一致しない(false)場合、次に進みます。else のブロック内部の処理Bが実行され、if 文の処理を抜けます。
- else は省略可能です。
if文 – else if文の基本構文
if 文で複数の条件式を書く場合は、else if 文を使います。次のような構文になっています。
if(条件式1)
{
処理A
}
else if(条件式2)
{
処理B
}
else
{
処理C
}
if 文と else if 文のポイントは次の通りです。
- if 文で指定した条件に一致する(true)場合、ブロック内部の処理Aが実行され、if 文の処理を抜けます。
- if 文で指定した条件に一致しない(false)場合、else if 文に進みます。else if 文で指定した条件に一致する(true)場合、ブロック内部の処理Bが実行され、if 文の処理を抜けます。
- else if 文で指定した条件に一致しない(false)場合、次に進みます。else のブロック内部の処理Cが実行され、if 文の処理を抜けます
- else はどの条件式にも一致しなかった場合に実行されます。else は省略可能です。
条件式で使う比較演算子
if 文や else if の中に記述する条件式では、比較演算子を使います。
比較演算子とは、ある値どうしを比較するための処理です。
比較演算子の一覧を以下に記載しています。
演算子 | 使用例 | 説明 |
---|---|---|
< | a < b | a が b より小さければ true、それ以外はfalseになる。 |
> | a > b | a が b より大きければ true、それ以外はfalseになる。 |
<= | a <= b | a が b 以下なら true、それ以外はfalseになる。 |
=> | a => b | a が b 以上なら true、それ以外はfalseになる。 |
== | a == b | a が b 等しいなら true、それ以外はfalseになる。 |
!= | a != b | a が b 等しくないなら true、それ以外はfalseになる。 |
条件式で使う論理演算子
論理演算子を使うことで、さらに複雑な条件を設定できるようになります。
論理演算子とは、論理(true、false)の計算をするための処理です。
論理演算子の一覧を以下に記載しています。
演算子 | 意味 | 使用例 | 説明 |
---|---|---|---|
& | AND(かつ) | a & b | a と b が true なら true、それ以外なら false になる(左辺の a が false でも右辺の b は評価する) |
| | OR(または) | a | b | a と b が false なら false、それ以外なら true になる(左辺の a が true でも右辺の b は評価する) |
&& | AND(かつ) | a && b | a と b が true なら true、それ以外なら false になる(左辺の a が false なら右辺の b は評価しない) |
|| | OR(または) | a || b | a と b が true なら true、それ以外なら false になる(左辺の a が true なら右辺の b は評価しない) |
! | 否定 | !a | a が true なら false、a が false なら true になる。 |
if文のサンプルコード
if 文の構文を使って、プログラムを確認してみましょう。
サンプルコード①
var num = 5;
if (3 < num)
{
Console.WriteLine("処理Aが実行される");
}
else
{
Console.WriteLine("処理Bが実行される");
}
1行目で変数num
の値を5に指定しています。3行目の if 文は「変数num
の値が3より大きいなら true、それ以外なら false」になっています。変数num
は3より大きいので true になり、ブロック内部にある5行目の処理が実行されます。
5行目の処理が実行された後、if 文を抜けます。
上記のコードを実行すると、結果は次のようになります。
処理Aが実行される
サンプルコード②
var num = 1;
if (3 < num)
{
Console.WriteLine("処理Aが実行される");
}
else if (2 < num)
{
Console.WriteLine("処理Bが実行される");
}
else if (1 < num)
{
Console.WriteLine("処理Cが実行される");
}
else if (0 < num)
{
Console.WriteLine("処理Dが実行される");
}
else
{
Console.WriteLine("処理Eが実行される");
}
1行目で変数num
の値を1に指定しています。15行目の if 文は「変数num
の値が0より大きいなら true、それ以外なら false」になっています。変数num
は0より大きいので true になり、ブロック内部にある17行目の処理が実行されます。
17行目の処理が実行された後、if 文を抜けます。
上記のコードを実行すると、結果は次のようになります。
処理Dが実行される
サンプルコード③
var num = 3;
if (3 <= num && num < 5)
{
Console.WriteLine("処理Aが実行される");
}
else if (8 == num || 10 == num)
{
Console.WriteLine("処理Bが実行される");
}
else
{
Console.WriteLine("処理Cが実行される");
}
論理演算子の && (AND)と || (OR)を使ったサンプルです。
1行目で変数num
の値を3に指定しています。3行目の if 文は「変数num
の値が3以上かつ変数num
の値が5より小さいなら true、それ以外なら false」になっています。変数num
は3以上で5より小さいので true になり、ブロック内部にある5行目の処理が実行されます。
5行目の処理が実行された後、if 文を抜けます。
上記のコードを実行すると、結果は次のようになります。
処理Aが実行される
サンプルコード④
var num = 3;
if (!(3 == num))
{
Console.WriteLine("処理Aが実行される");
}
else
{
Console.WriteLine("処理Bが実行される");
}
論理演算子の ! (否定)を使ったサンプルです。
1行目で変数num
の値を3に指定しています。3行目の if 文は「変数num
の値が3と等しくないなら true、それ以外なら false」になっています。変数num
は3なので false になり、ブロック内部にある9行目の処理が実行されます。
9行目の処理が実行された後、if 文を抜けます。
上記のコードを実行すると、結果は次のようになります。
処理Bが実行される
サンプルコード⑤
var str1 = "test";
var str2 = "test";
if (str1 == str2)
{
Console.WriteLine("処理Aが実行される");
}
if (str1.Equals(str2))
{
Console.WriteLine("処理Bが実行される");
}
string 型の文字列を比較するサンプルを2種類紹介します。
4行目の if 文は比較論理演算子の==
を使っています。9行目の if 文は Equals メソッドを使っています。どちらも「等しいかどうか」を比較することができます。
上記のコードを実行すると、結果は次のようになります。
処理Aが実行される
処理Bが実行される
サンプルコード⑥
var num = 1;
if (num == 1)
{
Console.WriteLine("処理Aが実行される");
}
else
{
Console.WriteLine("処理Bが実行される");
}
var str = num == 1 ? "処理Aが実行される" : "処理Bが実行される";
Console.WriteLine(str);
三項演算子を使ったサンプルです。
変数 = 条件式 ? 値1 : 値2
三項演算子は条件式が true ならば「値1」を返し、false ならば「値2」を返します。
三項演算子は if 文よりも簡潔な記述ができます。3行目から10行目に記述している if 文を三項演算子を使うと2行にすることができます。
上記のコードを実行すると、結果は次のようになります。
処理Aが実行される
処理Aが実行される
サンプルコード⑦
// null比較
string? str1 = null;
if (str1 == null)
{
Console.WriteLine("処理Aが実行される");
}
// 空文字かどうか
string str2 = "";
if (string.Empty(str2))
{
Console.WriteLine("処理Bが実行される");
}
// nullもしくは空文字かどうか
string str3 = "";
if (string.IsNullOrEmpty(str3))
{
Console.WriteLine("処理Cが実行される");
}
// nullもしくは空文字もしくは半角スペースかどうか
string str4 = " ";
if (string.IsNullOrWhiteSpace(str4))
{
Console.WriteLine("処理Dが実行される");
}
比較演算子やEmpty
、IsNullOrEmpty
、IsNullOrWhiteSpace
を使うことで変数の値が null / 空文字 / 半角スペースであるかを調べることができます。
演算子の==
を使うと、変数の値が null / 空文字 / 半角スペースであるかどうかを比較できます。
Empty
は、変数の値が空文字の場合、true になります。
IsNullOrEmpty
は、変数の値が null または空文字の場合、true になります。
IsNullOrWhiteSpace
は、変数の値が null または空文字または半角スペースまたは全角スペースの場合、true になります。
まとめ
この記事では、C# で if 文の使い方とサンプルコードをいつくか紹介しました。
- if 文は条件分岐処理に使い、さらに条件分岐を追加したい場合は else if や else を使う。
- 比較演算子や論理演算子を組み合わせることで、より複雑な条件分岐ができる。
if 文はよく使う構文の1つなので、何度も練習して扱えるようにしましょう。
条件分岐はプログラミングの基本となる処理なので、この機会にしっかりとマスターしておくことをオススメします。
以上、最後まで読んで頂きありがとうございました。