Swiftの二次元配列の作り方を完全ガイド!行列操作と実用サンプルも紹介
生徒
「Swiftで表みたいなデータ、たとえばエクセルの表みたいなものって作れますか?」
先生
「はい、Swiftでは二次元配列を使えば、表のようなデータを扱うことができますよ。」
生徒
「二次元配列ってどうやって作るんですか?複雑じゃないですか?」
先生
「大丈夫です!これから順を追って、Swiftの二次元配列の作り方と使い方をわかりやすく解説していきますね。」
1. 二次元配列とは?
Swift(スウィフト)における二次元配列とは、配列の中にさらに配列が入っている構造のことです。たとえば、エクセルのような行と列のある表をイメージしてください。一つの行が1つの配列、そしてその複数の行が一つの大きな配列の中に入っている形になります。
2. Swiftでの二次元配列の作り方
まずは、基本的な二次元配列の作り方を紹介します。Swiftでは次のように書きます。
let matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
このコードでは、3行3列の数値が並んだ二次元配列を作成しています。配列の中にさらに配列が入っている形ですね。
3. 二次元配列の値を取り出す方法
特定の場所にあるデータを取り出すには、行と列を指定します。たとえば、2行目の3列目の数字を取得するには次のように書きます。
let value = matrix[1][2]
print(value)
6
Swiftでは配列のインデックスは0から始まるので、2行目はインデックス1、3列目はインデックス2になります。
4. 二次元配列に値を代入する方法
既存の二次元配列に新しい値を代入したいときは、次のようにします。
var matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
matrix[0][1] = 99
print(matrix[0][1])
99
このように、行と列を指定して直接値を変更できます。
5. 二次元配列をfor文でループする
Swiftでは、二次元配列をループしてすべての要素を取り出すことも簡単にできます。
for row in matrix {
for value in row {
print(value)
}
}
このように、外側のfor文で各行の配列を取り出し、内側のfor文で列ごとの値を一つずつ処理していきます。
6. 二次元配列の初期化方法(すべて同じ値)
すべての値が同じ初期値で埋まった二次元配列を作成したい場合、次のように書きます。
let rows = 3
let cols = 4
let initialValue = 0
let matrix = Array(repeating: Array(repeating: initialValue, count: cols), count: rows)
print(matrix)
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
Array(repeating:count:)は、指定した値を何回繰り返して配列を作るかを指定できるSwiftの便利な初期化方法です。
7. 実用サンプル:座席表のような二次元配列
現実的な例として、映画館の座席表を二次元配列で表すと次のようになります。
var seats = [
["◯", "◯", "×"],
["◯", "×", "◯"],
["◯", "◯", "◯"]
]
for (rowIndex, row) in seats.enumerated() {
print("Row \(rowIndex + 1): \(row)")
}
Row 1: ["◯", "◯", "×"]
Row 2: ["◯", "×", "◯"]
Row 3: ["◯", "◯", "◯"]
このように、Swiftの二次元配列は座席や表、ゲームボードなど、さまざまな実用的な場面で活用できます。
8. 行や列を追加・削除するには?
行を追加するには、通常の配列と同じようにappendを使います。
seats.append(["×", "×", "×"])
列(中の配列の要素)を追加するには、すべての行に対して値を追加する必要があります。
for i in 0..<seats.count {
seats[i].append("◯")
}
このようにして、行や列の追加も柔軟に行えます。
9. Swiftで行列(matrix)を使うときの注意点
Swiftの二次元配列は、PythonなどのNumPyのような本格的な行列演算までは対応していません。しかし、基本的な値の操作やループ処理であれば十分に行えます。
また、行によって列の数が異なる「不規則な形」の二次元配列も作成できますが、扱いが難しくなるため、最初はすべて同じ列数にするのが安心です。
まとめ
Swiftの二次元配列を基礎から整理しよう
この記事では、Swiftにおける二次元配列の基本構造から、値の取得や代入、for文によるループ処理、初期化方法、そして実用的なサンプルまでを順番に学んできました。二次元配列は、配列の中に配列を持つ形でデータを管理できるため、行と列を意識したデータ構造を扱う際に非常に役立ちます。エクセルの表や座席表、ゲームのマップ、数値の行列など、現実世界の多くのデータは二次元構造で表現できます。
Swiftでは、特別な構文を覚えなくても、通常の配列を組み合わせるだけで二次元配列を作成できます。そのため、一次元配列の理解ができていれば、二次元配列も自然に扱えるようになります。行と列のインデックスはどちらも0から始まる点を意識することで、値の取得や更新時のミスを防ぐことができます。
二次元配列の操作と実用シーン
二次元配列の操作で重要なのは、「どの行の、どの列か」を常に意識することです。matrix[row][column]のように、二段階でインデックスを指定することで、目的の値にアクセスできます。また、for文を使ったループ処理では、外側のループで行を取り出し、内側のループで列の値を処理するという流れが基本になります。
すべて同じ初期値で二次元配列を作成する方法や、行や列を動的に追加する方法を知っておくと、実務やアプリ開発での応用範囲が広がります。例えば、座席管理や在庫表、スコアボード、簡易的な行列計算など、Swiftの二次元配列はさまざまな場面で活躍します。複雑な数値計算ライブラリが不要なケースであれば、標準の配列操作だけでも十分に対応できます。
まとめとしてのサンプルプログラム
ここでは、二次元配列の作成、値の取得、ループ処理を一度に確認できるシンプルなサンプルを紹介します。これまで学んだ内容の振り返りとして活用してください。
var scoreTable = [
[80, 75, 90],
[60, 88, 70],
[95, 92, 85]
]
// 特定の値を取得
let firstStudentMath = scoreTable[0][1]
print(firstStudentMath)
// 全体を表示
for (rowIndex, row) in scoreTable.enumerated() {
for (colIndex, value) in row.enumerated() {
print("行\(rowIndex + 1) 列\(colIndex + 1):\(value)")
}
}
このように、Swiftの二次元配列を使えば、行と列を持つデータを直感的に扱うことができます。最初は少し複雑に感じるかもしれませんが、基本的な考え方を押さえれば、一次元配列の延長として理解できるようになります。
生徒
「二次元配列って難しそうだと思っていましたが、配列の中に配列があるだけなんですね。」
先生
「そうです。一次元配列が理解できていれば、その考え方を広げるだけで二次元配列も扱えます。」
生徒
「行と列を意識するのが大事だというのが、だいぶ分かってきました。」
先生
「そこに気づけたのは大きいですね。表や座席表、ゲームの盤面など、応用できる場面はたくさんあります。」
生徒
「これなら、Swiftで表形式のデータも自信を持って扱えそうです。」
先生
「その調子です。二次元配列を使いこなせるようになると、Swiftでできることが一気に広がりますよ。」
Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略
Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略
「iPhoneアプリを作りたいけれど、Macを持っていないから諦めている」そんな方のための画期的な入門講座です。実は、プログラミングの本質を学ぶのに高価な機材は必要ありません。本講座では、Windowsパソコンを使用し、クラウド環境を活用してAppleの最新言語Swift(スウィフト)の基礎を最短距離でマスターします。
Windowsで実現する開発環境
【つくるもの】
ブラウザ上で動作する「スマート・計算ツール」や「データ判定プログラム」をゼロから作成します。変数の扱いや条件分岐など、iPhoneアプリの内部で動くロジックを自分の手で構築する感動を体験してください。
【開発環境】
ブラウザだけでSwiftが動くプロ仕様のオンラインエディタ(Replit等)を使用します。面倒な設定は一切不要。今あるWindows PCで、プロのエンジニアと同じコードを書き始められます。
この60分で得られる3つの理解
OSの壁を越え、クラウドを活用してスマートに学習を開始する「現代的な開発スタイル」を習得します。
iPhoneアプリ特有のデータの扱い方や、Appleが推奨する「安全で美しいコード」の書き方を学びます。
将来的にiOSエンジニアとして副業・転職するために必要な準備や、Mac選びのポイントを伝授します。
※本講座は、将来的にiPhoneアプリ開発で収益化や転職を目指したい未経験者のためのエントリー講座です。マンツーマン形式により、Windows環境ならではの疑問にもその場でお答えし、あなたの理解度に合わせて進行します。
Windowsで始めるiPhoneアプリ開発入門