前回(Day01)では、Kotlinの変数の基礎(valとvar)を学んだ。今回は、プログラムに「判断する力」を与える条件分岐を学んでいこう。
前回の振り返り
前回では以下のことを学んだ。
val(変更不可)とvar(変更可能)の違い- 変数の宣言と使い方
- エラーメッセージの読み方
今回はこの知識をベースに、より実用的なプログラムを作っていこう。
学習の全体像
第2回(Day02)は、4週間の学習プランの一部である。全体の学習計画は以下のリンクから確認できる。(私のGitHub)
STUDYPLAN.md – Kotlin 4週間学習プラン
現在の位置を確認
- ✅ 第1週: 基礎文法(変数、制御構文、関数)← 今ここ(第2回)
- ⬜ 第2週: オブジェクト指向とコレクション操作
- ⬜ 第3週: 高度な機能
- ⬜ 第4週: 実践プロジェクト
この学習プランに沿って進めることで、4週間でKotlinの基礎から実践まで体系的に学べる。
今回学ぶこと:条件分岐
条件分岐とは、「もし〜ならば〜する」という処理のこと。
例えば、
- 「もし年齢が18歳以上なら成人と表示する」
- 「もし点数が60点以上なら合格と表示する」
- 「曜日によって異なるメッセージを表示する」
Kotlinには主に2つの条件分岐がある。
- if文/if式 – 2択または少数の条件に使う
- when式 – 多くの条件を扱う時に便利
それでは実際に進めていこう。
構築したCodespacesを開こう
- ブラウザでGitHubリポジトリを開く
- 「Code」→「Codespaces」→ 構築したCodespaceを選択する
- ターミナルが開いていることを確認する
第2回の練習ファイルを作成しよう
ターミナルで以下のコマンドを実行して、練習ファイルを作成しよう。
# 練習ファイルを作成
cat > src/main/kotlin/com/learning/Day02Conditionals.kt << 'EOF'
package com.learning
fun main() {
println("=== Day 2: 条件分岐の基礎 ===\n")
// 課題1: 基本的なif文
val age = 20
println("年齢: ${age}歳")
if (age >= 18) {
println("あなたは成人です")
} else {
println("あなたは未成年です")
}
// 課題2: if式(値を返す)
val score = 75
val result = if (score >= 60) "合格" else "不合格"
println("\nスコア: $score点 → $result")
// 課題3: when式(範囲による分岐)
val grade = 85
val evaluation = when {
grade >= 90 -> "A: 優秀"
grade >= 80 -> "B: 良好"
grade >= 70 -> "C: 普通"
grade >= 60 -> "D: もう少し"
else -> "F: 再試験"
}
println("\n成績: $grade点 → $evaluation")
// 課題4: when式(値による分岐)
val dayOfWeek = 3
val dayName = when (dayOfWeek) {
1 -> "月曜日"
2 -> "火曜日"
3 -> "水曜日"
4 -> "木曜日"
5 -> "金曜日"
6 -> "土曜日"
7 -> "日曜日"
else -> "不明"
}
println("\n今日は$dayName です")
// 課題5: 複数条件の組み合わせ
val temperature = 25
val isRaining = false
println("\n=== 今日の天気 ===")
println("気温: ${temperature}℃")
println("雨: ${if (isRaining) "降っている" else "降っていない"}")
val recommendation = when {
temperature >= 30 -> "暑いです!水分補給を忘れずに"
temperature >= 20 && !isRaining -> "過ごしやすい天気です"
temperature >= 20 && isRaining -> "傘を持って出かけましょう"
temperature >= 10 -> "少し肌寒いです。上着があると良いでしょう"
else -> "寒いです!暖かい服装で"
}
println("アドバイス: $recommendation")
// チャレンジ課題: 自分の情報で判定してみよう
println("\n=== チャレンジ課題 ===")
val myScore = 0 // ← ここを変更してみよう(0-100)
val myAge = 0 // ← ここを変更してみよう
// ここにコードを書いてみよう!
}
EOF
build.gradle.ktsを編集して実行する
Step 1: build.gradle.ktsを編集
左側のファイルツリーから build.gradle.kts を開いて、最後の部分を変更しよう。
変更前:
application {
mainClass.set("com.learning.Day01VariablesKt")
}
変更後:
application {
mainClass.set("com.learning.Day02ConditionalsKt")
}
Step 2: 実行してみよう
pwd
# /workspaces/kotlin-learning を確認しよう
./gradlew run実行結果の例
> Task :run
=== Day 2: 条件分岐の基礎 ===
年齢: 20歳
あなたは成人です
スコア: 75点 → 合格
成績: 85点 → B: 良好
今日は水曜日 です
=== 今日の天気 ===
気温: 25℃
雨: 降っていない
アドバイス: 過ごしやすい天気です
=== チャレンジ課題 ===
学習のヒント:
1. myScore と myAge に値を入れてみましょう
2. if文 や when式 を使って判定を作ってみましょう
3. 複数の条件を組み合わせてみましょう
BUILD SUCCESSFUL in 3s
各課題のポイント
課題1: 基本的なif文
if (age >= 18) {
println("あなたは成人です")
} else {
println("あなたは未成年です")
}>=は「以上」を意味する- 条件が真(true)なら上のブロック、偽(false)なら下のブロックが実行される
課題2: if式(Kotlinの特徴!)
val result = if (score >= 60) "合格" else "不合格"Kotlinではif文が値を返すことができる。これをif式と呼ぶ。
他の多くの言語では、if文は値を返さないが、Kotlinでは式として使える。
課題3: when式(範囲による分岐)
val evaluation = when {
grade >= 90 -> "A: 優秀"
grade >= 80 -> "B: 良好"
grade >= 70 -> "C: 普通"
grade >= 60 -> "D: もう少し"
else -> "F: 再試験"
}when式は複数の条件を美しく書ける。上から順に評価され、最初に当てはまった条件の値が返される。
課題4: when式(値による分岐)
val dayName = when (dayOfWeek) {
1 -> "月曜日"
2 -> "火曜日"
3 -> "水曜日"
// ...
else -> "不明"
}特定の値に応じて処理を分岐できる。他の言語のswitch文に似ているが、より強力である。
課題5: 複数条件の組み合わせ
val recommendation = when {
temperature >= 30 -> "暑いです!"
temperature >= 20 && !isRaining -> "過ごしやすい天気です"
temperature >= 20 && isRaining -> "傘を持って出かけましょう"
// ...
}&&は「かつ(AND)」を意味する!は「〜でない(NOT)」を意味する- 複雑な条件も組み合わせられる
エラーを体験しよう
学習の一環として、意図的にエラーを起こしてみよう。Day02Conditionals.kt の最後に以下を追加してみよう。
// エラー体験: when式のelse忘れ
val testScore = 50
val testResult = when {
testScore >= 80 -> "優秀"
testScore >= 60 -> "合格"
// else を書かないとエラー!
}実行してみよう。
./gradlew run期待されるエラー
e: 'when' expression must be exhaustive, add necessary 'else' branchこれは「when式は全てのケースを網羅する必要がある」というエラーである。elseを追加して修正しよう。
val testResult = when {
testScore >= 80 -> "優秀"
testScore >= 60 -> "合格"
else -> "不合格" // これを追加
}再度実行すると、エラーなく動作するはずである。
ポイント: Kotlinは安全性を重視している。
when式では全てのケースを考慮するよう促してくれる。
チャレンジ課題
Day02Conditionals.kt のチャレンジ課題セクションを完成させよう。
例1: スコア判定を追加
val myScore = 88 // 自分のスコアに変更
val myEvaluation = when {
myScore >= 90 -> "A: 素晴らしい!"
myScore >= 80 -> "B: よくできました"
myScore >= 70 -> "C: 合格です"
myScore >= 60 -> "D: もう一息"
else -> "F: 復習しましょう"
}
println("あなたのスコア: $myScore点")
println("評価: $myEvaluation")例2: 年齢層判定を追加
val myAge = 25 // 自分の年齢に変更
val ageGroup = when {
myAge < 13 -> "子供"
myAge < 20 -> "ティーンエイジャー"
myAge < 30 -> "若者"
myAge < 60 -> "中年"
else -> "シニア"
}
println("あなたの年齢: ${myAge}歳")
println("年齢層: $ageGroup")例3: 複合条件チャレンジ
val myScore = 75
val myAge = 22
println("\n=== 複合判定 ===")
// スコアと年齢の両方を考慮した判定
val message = when {
myScore >= 80 && myAge < 20 -> "若くて優秀!将来有望です"
myScore >= 80 && myAge >= 20 -> "素晴らしい成績です!"
myScore >= 60 && myAge < 20 -> "まだまだ伸びしろがあります"
myScore >= 60 && myAge >= 20 -> "合格です。よく頑張りました"
myAge < 20 -> "若いうちに頑張りましょう"
else -> "諦めずに挑戦し続けましょう"
}
println(message)学習内容を保存しよう
練習ファイルを修正・実行した後は、以下の通り実行してGitに保存しよう。
# 1. 変更したファイルをステージング
git add .
# 2. コミット(変更内容を記録)
git commit -m "Day02: 条件分岐の学習完了"
# 3. GitHubにプッシュ
git pushこれで、どこからでも続きが試せるし、学習の履歴も残せる。
便利なコマンドまとめ
# プログラムを実行
./gradlew run
# 現在のディレクトリ確認
pwd
# ファイル一覧
ls -la src/main/kotlin/com/learning/
# Gitの状態確認
git statusまとめ
今回学んだこと。
- if文/if式 – 2択の条件分岐
- if式の特徴 – 値を返せる(Kotlinの強み)
- when式 – 複数条件を美しく扱える
- 複数条件の組み合わせ –
&&(AND)、||(OR)、!(NOT) - エラーの理解 – when式は全ケースを網羅する必要がある
次回は、第3回(Day03) ループ処理を学ぶ予定である。同じ処理を繰り返す方法(for、while)を学んでいこう。
詳しい学習計画は STUDYPLAN.md(私のGitHub) を参照しよう。第1週の後半では、ループ処理と関数の基礎を学び、FizzBuzzや簡単な電卓プログラムを作成していく。



コメント