[28日でiOSアプリ開発]Day03 Swiftの基礎を学ぶ②

当ページのリンクには広告が含まれています。
Swiftチュートリアルday3
目次

今日のゴール

  • 複数のデータをまとめて扱う方法を理解する
  • 配列(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)、プロトコル を扱います。「なぜ「!」が危険なのか」「データの型をどう設計するのか」を理解し、アプリの土台になる「データモデル」を作っていきましょう!

tenjiprogramming
20代エンジニア。
メインで使用している言語はJava/JavaScript/TyoeScript/react/C言語
AWSなどクラウド周りも経験あり。
楽しいをモットーに記事を書いています。
Noteではサンプルコード付きのゲームの作り方など様々な内容を公開しています。
そちらも是非ご覧ください!
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次