目次
今日のゴール
- 複数のデータをまとめて扱う方法を理解する
- 配列(Array)と辞書(Dictionary)の違いを説明できる
- ループ処理(for/while)で繰り返しを実装できるようになる
1. 配列(Array)
配列とは
同じ種類のデータを順番に並べて管理する入れ物です。
例えば、買い物リストや得点リストをまとめたいときに便利です
let fruits = ["りんご", "バナナ", "みかん"]
print(fruits[0]) // りんご
print(fruits[1]) // バナナ
ポイント
- 添字(index)は 0 から始まる
- 型はすべて同じでなければならない
配列の操作
- 要素の追加 : append
- 要素の削除 : remove(at:)
var numbers = [1, 2, 3]
numbers.append(4) // [1, 2, 3, 4]
numbers.remove(at: 1) // [1, 3, 4]
2. 辞書(Dictionary)
辞書とは?
「キー」と「値」のペアを持つデータの集合です。
例えば、ユーザーの名前と年齢をセットで管理する場合に使います。
var ages = [
"太郎": 20,
"花子": 22,
"次郎": 18
]
print(ages["花子"]!) // 22
ポイント
- 配列は「順番」でアクセスするのに対し、辞書は「キー」でアクセスする
- 値は存在しない可能性があるので、基本的にオプショナルで返る (! や if letで扱う)
辞書の操作
- 追加・更新 : 代入演算子(=)
- 削除 : removeValue(forKey:)
ages["三郎"] = 25 // 追加
ages["太郎"] = 21 // 更新
ages.removeValue(forKey: "次郎") // 削除
3. ループ処理
for-inループ
配列や辞書を順番に処理するときに使います。
let fruits = ["りんご", "バナナ", "みかん"]
for fruit in fruits {
print(fruit)
}
上記コードの出力結果は次のようになります(実際に自分で実行してみてください!)
りんご
バナナ
みかん
whileループ
条件が成立する限り繰り返します。
var count = 0
while count < 3 {
print("countは\(count)")
count += 1
}
出力結果は次のようになります。
countは0
countは1
countは2
4. guard文とループの組み合わせ
Swiftではエラー処理や分岐でguardをよく使います。
ループ内でも使えるので、条件が合わないものを早めにスキップできます。
let numbers = [1, 2, 3, 4, 5]
for num in numbers {
guard num % 2 == 0 else {
continue // 偶数でなければスキップ
}
print(num) // 偶数のみ表示
}
次にように出力されます。
2
4
5. map / filter / reduce 入門
Swiftでは「関数型スタイル」の書き方もよく使います。
map(変換)
let numbers = [1, 2, 3]
let doubled = numbers.map { $0 * 2 }
print(doubled) // [2, 4, 6]
filter(条件抽出)
let even = numbers.filter { $0 % 2 == 0 }
print(even) // [2]
reduce(集計)
let sum = numbers.reduce(0) { $0 + $1 }
print(sum) // 6
今日の練習問題
最後に練習問題で復習しましょう!
練習問題①
let scores = [80, 92, 45, 70]
この配列をループで回して、
- 60点以上 → 「合格」
- 60点未満 → 「不合格」
と表示するプログラムを作成してください。
練習問題②
2つの整数を受け取り、足し算した結果を返す関数addを作成してください
練習問題の解答
①の解答
解答例なので他にも書き方はあると思います。
let scores = [80, 92, 45, 70]
for score in scores {
if score >= 60 {
print("\(score)点 → 合格")
} else {
print("\(score)点 → 不合格")
}
}
②の解答
func add(a: Int, b: Int) -> Int {
return a + b
}
// 実行例
let result = add(a: 5, b: 7)
print(result) // 12
今日のチェックリスト
- 配列と辞書の違いを説明できる
- 配列の追加・削除・参照ができる
- 辞書の追加・更新・削除ができる
- for-in / while の基本を理解した
Day04では オプショナルと構造体(struct)、プロトコル を扱います。「なぜ「!」が危険なのか」「データの型をどう設計するのか」を理解し、アプリの土台になる「データモデル」を作っていきましょう!
コメント