処理を条件によって分けたい
if文はどうかけば良いの?
条件の書き方分からない…
プログラミングを始めた方にとって最初の壁となるのが、条件分岐かと思います。
ある条件を満たした時だけ決まった処理をさせるif文は、プログラミングには必須となる文法です。
こんにちは、現役エンジニア5年目の遠藤です!
今回は、C#におけるif文の書き方を解説致します。
この記事はこんな方へ向けて書かれています。
- if文(条件分岐)がどういったものか分からない方
- if文の基本的な書き方が分からない方
- 条件式の書き方が分からない方
本記事はif文の基礎知識をまとめております。
if文がどういったものか分からない方は是非最後までお付き合いください。
if文ってどんなもの?
冒頭でも述べた通り、if文とは「ある条件を満たした時にだけ指定した動作をさせる」文です。例えばnがmより大きい時はn-mをして、mの方が大きいときはm-nにするなどといった、条件によって処理を分ける事が可能になります。
言葉ではイマイチわかりにくいと思うので、次の章で実際の書き方を見てみましょう。
if文の書き方
基本形
if文の基本形は以下のようになっています。
if(条件式){
//条件が満たされた場合の処理
}
このように記述する事で、条件が満たされた時に処理が実行されます。条件が満たされない場合は処理が{}内の処理は実行されず、スキップされます。
なお、条件式の書き方については後ほど紹介致します。
elseについて
もし条件が満たされない場合の処理も指定したい時は、elseを使います。書き方は以下の通りです。
if(条件式){
//条件が満たされた場合の処理
}
else{
//条件が満たされなかった場合の処理
}
このように記述することで、条件が満たされた時とそうでない場合それぞれの処理を指定できます。
if elseについて
コーディングをしていると、分岐させたい処理が2択だけじゃない場合も出てきます。例えば数値nが0~2の時は処理1を、3~4の時は処理2、それ以外の場合は処理3を実行させたいといったケースです。
そういう場合は、else if()という行を追加することで、条件を増やす事ができます。書き方は以下のようになります。
if(条件1){
//条件1が満たされた場合の処理
}
else if(条件2){
//条件1が満たされず、条件2が満たされた場合の処理
}
else{
//全ての条件が満たされなかった場合の処理
}
この時に注意していただきたいのが、条件1が成り立った時は条件2以降の判定や処理はすべてスキップされる事です。条件1が成り立たない時だけ条件2に進み、さらに条件2も成り立たない時は次へと進んでいくようになっております。
また、else if()はいくつでも追加することが可能で、elseは必ず最後に記述する必要があります(elseを書かない事は可能です)
条件式の書き方
if文の書き方が分かった所で、条件式の書き方について解説致します!
条件式には、True(真)かFalse(偽)となる式を書く必要があります。その基本となるのが、比較演算子です。
比較演算子
比較演算子とは、演算子の左辺と右辺を比べてTrueかFalseかを返す演算子です。関係演算子とも言います。
比較演算子には、以下のようなものがあります。
種類 | 使い方 | 意味 |
---|---|---|
== | n == m | nとmは等しい |
!= | n != m | nとmは等しくない |
> | n > m | nはmより大きい |
< | n < m | nはmより小さい |
>= | n >= m | nはm以上 |
<= | n <= m | nはm以下 |
関係演算子を使って、実際にコードを書いてみましょう。
using System;
public class Program{
public static void Main(){
var num = 1;
if (num == 1){
Console.WriteLine("数値は1です");
}
else if(num > 1){
Console.WriteLine("数値は1よりも大きいです");
}
else {
Console.WriteLine("数値は1よりも小さいです");
}
}
}
numの値を0や10など好きな数に変更して、どのようになるか確認してみてくださいね!
複数の条件が真の時だけ処理を実行したい場合
複数の条件が真の時だけ処理を実行したい場合、2つの方法があります。
1つはif文の中にさらにif文を加える形です。以下のように記述する事で実行できます。
if(条件1){
if(条件2){
//条件1と条件2の両方が成り立つ時にだけ実行される処理
}
else{
//条件1は成り立ったが条件2は成り立たなかった場合に実行される処理
}
}
else{
//条件1が成り立たない場合の処理
}
このように入れ子構造にする事で、複数の条件を満たしている場合のみに処理を実行させる事ができます。
ですが、これをもっとシンプルにまとめる事もできます。その際に使うのが、論理演算子です。
条件A「かつ」条件Bという表現や、条件A「または」条件Bといった「または」や「かつ」などにあたる演算子を論理演算子と言います。
基礎的に使われる論理演算子の種類には、以下のようなものがあります。
種類 | 使い方 | 意味 |
---|---|---|
! | !(演算対象) | 演算対象の否定。 演算対象がTrueの時はFalse, Falseの時はTrueを返す |
&& | A && B | 条件Aかつ条件Bが成り立つかどうか |
|| | A || B | 条件Aまたは条件Bが成り立つかどうか |
これを使って実際にコードを書くと、以下のように表現できます。
using System;
public class Program{
public static void Main(){
var num_a = 1;
var num_b = 1;
if (num_a == 1 && num_b == 1){
//num_aとnum_b両方が1の場合にのみ実行される処理
Console.WriteLine("どちらの数も1です");
}
else if(num_a == 1 || num_b == 1){
//num_aかnum_bのどちらかが1の場合の処理
Console.WriteLine("どちらかの数が1です");
}
else if(!(num_a == num_b)){
//num_aとnum_bが一致しない場合の処理
Console.WriteLine("num_aとnum_bは一致しません");
}
}
}
こちらもnum_aとnum_bの値を変更して試してみてください。
以上のように、複数の条件式を1行にまとめる事も可能です。理由がなければ行数は少なくまとめる方が良いので、論理演算子を上手く活用しましょう。
まとめ
今回の記事では、if文の基本的な使い方を網羅的に解説致しました。
ポイントとなる用語は以下の通りです。
- if文
- 関係演算子
- 論理演算子
この単語だけ覚えておけば、if文の書き方を忘れてもすぐに調べられるかと思います!
if文はどのプログラミング言語でも重要となる文です。
ここで是非使い方を覚えて、どんどん活用してください!