Javaのお勉強 ～その10～ if文

# 1. はじめに
さて、ここからプログラミングらしくなっていきます。

プログラミングは、制御文があって光り輝き出します！！
その制御文の一つ！！とても重要な「**if 文**」を勉強しましょう！！

# 2. if 文
「**if 文**」とは、処理の流れで、

「もし～ならば」次の処理をする
「もし～でないならば」次の処理はしない

というように条件で処理を分岐させます。

例えば現実の世界ですと、

「もし雨が降れば」→「傘をさす」
「もしご飯が食べたいならば」→「ご飯を炊く」
「もしパスタが食べたいならば」→「パスタを茹でる」

といった感じです。日常生活にも if 文は多く潜んでいます。

## 2.1. if 文 - 基礎
では！！！実際に基礎構文を見ておきましょう！！

```java:Main.java
public class Main {
	public static void main(String[] args) {

		// ↓ if文はここから
		if (条件式) {

		}
		// ↑if文はここまで
	}
}
```

if 文の書き方はシンプルですよね！
if ( 条件式 ) { 処理内容 }    が定石です！！

条件式と書かれているところに、条件分岐を起こしたい条件式を書いて見てください。
条件式の結果は、「true」「false」のいずれかになります。

## 2.2. if 文 - 応用
ちょっぴち実態を持たせてあげます。

例えばですと、

```java:Main.java
public class Main {
	public static void main(String[] args) {

		// 現在の天気状態
		String weather = "rain";

		// 現在の天気はどうであるか判定
		if (weather.equals("rain")) {
			// 雨である　一言コメントを出力しよう
			System.out.println("今日は雨だ。傘を持っていかないと");
		}

	}
}
```
このようなソースがあります。

処理の解説をしますと、

現在の天気状態を表す「weather」という変数が宣言され、「"rain"」で初期化されています。

そして肝であるif 文に入りました。
ここでの条件式は、

「weather.equals("rain")」

というもの。
これは「weather」の持っている文字列は「"rain"」と同じか？
という条件式になっています。

同じであれば「true」、同じでなければ「false」に置き換えられます。
「true」は真、条件に一致したということ
「false」は偽、条件に一致しなかったということ

イメージとしては、
if (weather.equals("rain")) { ... }
　↓
if (true) { ... }
といった感じですね。

if 文の条件式が「true」になると { } 内の処理が行われますー！
今回は「今日は雨だ。傘を持っていかないと」という出力になりました。

ざっくりまとめると、
1番目の条件「weather.equals("rain")」が一致すれば、
>「今日は雨だ。傘を持っていかないと」と出力する

---
そして例えば、
「weather」の初期化で「"Fine weather"」と入力するば、、、、、

```java:Main.java
public class Main {
	public static void main(String[] args) {

		// 現在の天気状態
		String weather = "Fine weather";

		// 現在の天気はどうであるか判定
		if (weather.equals("rain")) {
			// 雨である　一言コメントを出力しよう
			System.out.println("今日は雨だ。傘を持っていかないと");
		}

	}
}
```

何も出てきません。寂しい。
ここでも重要なのは、 if 文に当てはまらず、「System.out.println("今日は雨だ。傘を持っていかないと");」の処理が行われなかったことに注目です！！

# 3. if - else 文
さて次は、「**if - else**」 文。

これは、
if 「もし～であれば」処理を行う
else 「ifに当てはまらないことがあれば」処理を行う

といった if 文に else がくっついたイメージを持ってもらえると嬉しいかな。
else 文は、if 文に当てはまらなかった条件があれば必ず拾ってくれます。

## 3.1. if - else 文 - 基礎
基礎構文は、

```java:Main.java
public class Main {
	public static void main(String[] args) {

		// ↓if - else 文はここから
		if (条件式_1) {
			// 条件式_1がtrueの場合行われる処理
		} else {
			// if 文に当てハマらなかった時に行われる処理
		}
		// ↑if - else 文はここまで

	}
}
```

## 3.2. if - else 文 - 応用
例えば、

```java:Main.java
public class Main {
	public static void main(String[] args) {

		// 現在の天気状態
		String weather = "Fine weather";

		// 現在の天気はどうであるか判定
		if (weather.equals("rain")) {
			// 雨である　一言コメントを出力しよう
			System.out.println("今日は雨だ。傘を持っていかないと");
		} else {
			// 上記の条件に当てはまらなかったみたいだ 一言コメントを出力しておこ
			System.out.println("今日は良い天気みたいだね。ルンルンルンバ");
		}

	}
}
```

このプログラムは、先ほどと同じく、

解説をすると、

1番目の条件「weather.equals("rain")」が一致すれば、
>「今日は雨だ。傘を持っていかないと」と出力

1番目、条件に一致しなかった場合は、
>「今日は良い天気みたいだね。ルンルンルンバ」と出力

といった感じかな。

# 4 if - else if - else 文
if 文に関して最後に1つ！大事なものが！
「**if - else if - else**」文と呼ばれるものです。
これは、条件が複数になった場合です。

例えば、
「晴れていたら～をする」
「晴れていなくて、曇っていたら～をする」
「晴れでも曇りでもなく、雨だったら～をする」
「それ以外なら引きこもる」
といった感じで条件で考えてみましょう。

## 4.1. if - else if - else 文 - 基礎
まず、式の書き方ですが、

```java:Main.java
public class Main {
	public static void main(String[] args) {

		// ↓if - else if - else 文はここから
		if (条件式_1) {
			// 条件式_1がtrueの場合行われる処理
		} else if(条件式_2){
			// 条件式_2がtrueの場合行われる処理
		} else {
			// 上記の条件に当てハマらなかった時に行われる処理
		}
		// ↑if - else if - else 文はここまで

	}
}
```

少しゴチャゴチャとしていまっていますね。。


## 4.2. if - else if - else 文 - 応用
例えば、

```java:Main.java
public class Main {
	public static void main(String[] args) {

		// 現在の天気状態
		String weather = "Fine weather";

		// 現在の天気はどうであるか判定
		if (weather.equals("Fine weather")) {
			// 晴である
			System.out.println("今日は晴れだ。曇り一つない喜びの晴れじゃないか！遊びに行こう！");
		} else if (weather.equals("cloudy")) {
			// 曇りである
			System.out.println("今日は曇りだ！しかし関係ない！遊びに行こう！！");
		} else if (weather.equals("rain")) {
			// 雨である
			System.out.println("今日は雨だ。傘が必要だが遊びに行こう！！");
		} else {
			// 上記の条件に当てはまらなかった
			System.out.println("今日の天気よくわからない。ルンルンルンバ、遊びに行こう！！");
		}

	}
}
```

解説をすると、
1番目の条件「weather.equals("Fine weather")」が一致すれば、
>「今日は晴れだ。曇り一つない喜びの晴れじゃないか！遊びに行こう！」と出力

1番目の条件が一致せず、2番目の条件「weather.equals("cloudy")」が一致すれば、
>「今日は曇りだ！しかし関係ない！遊びに行こう！！」と出力

1番目と2番目の条件が一致せず、3番目の条件「weather.equals("rain")」が一致すれば、
>「今日は雨だ。傘が必要だが遊びに行こう！！」と出力

1番目、2番目、3番目の条件全てに一致しなかった場合は、
>「今日の天気よくわからない。ルンルンルンバ、遊びに行こう！！」と出力

このようにプログラムを組んでみた。

上記のプログラムでは、「weather」に「"Fine weather"」で初期化しているので、
1つ目の条件式が一致し、「今日は晴れだ。曇り一つない喜びの晴れじゃないか！遊びに行こう！」が出力されるはずだ。

注意点があるとすれば、ただ一度どこかで条件が一致してしまうと、その後の if - else や if - else - if 文の判定はスキップされます！
他の条件とも一致させたい場合は工夫が必要になる。ちょっと注意ですね。

もうすでにやっている方もいるかと思うが、「weather」の値を「"cloudy"」「"rain"」「"koukonko"」なんか適当に変えてみると結果が変わって面白いよ！

# 5. おわりに
今回も読んで頂いてありがとうございます！！！！
タイトルだけでも読んで頂ければ嬉しい！！

ちょっと話は変わりますが、
条件分岐の説明は少しお時間を頂きたいです。
ゆっくりじっくりやっていこうと思ってもいます。
お付き合いいただけると嬉し！

次回は「switch文」についてご説明したいと思います。ﾉｼ

次回 →「[Javaのお勉強 ～その11～ switch文](https://qiita.com/koukonko/items/f0df386ddb821b9e51d8)」