ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Swift の繰り返し構文一覧
Swift はモダンなループ構文を採用し、C 言語ライクな for (i=0;i<10;i++) 形式は Swift 3 で廃止されました。現代の Swift では for-in と while / repeat-while の 3 形態だけ覚えれば十分です。
1. for-in と範囲演算子
もっとも基本的な書き方です。範囲演算子と組み合わせて回数指定ループを作ります。
// 閉区間(1, 2, 3, ..., 10)
for i in 1...10 {
print(i)
}
// 半開区間(0, 1, 2, ..., 9)
for i in 0..<10 {
print(i)
}
// インデックスを使わないなら _ で受ける
for _ in 1...5 {
print("Hello")
}
2. 配列・辞書を回す
let array = ["aaa", "bbb", "ccc"]
// 値だけ
for v in array {
print(v)
}
// インデックス付きで回す(enumerated)
for (i, v) in array.enumerated() {
print("\(i): \(v)")
}
// 辞書はタプルで取れる
let dict = ["red": 1, "blue": 2, "green": 3]
for (key, value) in dict {
print("\(key) = \(value)")
}
3. 逆順・ステップ指定
// 逆順(10, 9, ..., 1)
for i in (1...10).reversed() {
print(i)
}
// 2 ずつ(0, 2, 4, 6, 8)
for i in stride(from: 0, to: 10, by: 2) {
print(i)
}
// 末端を含めたいときは through
for i in stride(from: 0, through: 10, by: 2) {
print(i) // 0, 2, 4, 6, 8, 10
}
// 浮動小数点も OK
for x in stride(from: 0.0, to: 1.0, by: 0.25) {
print(x) // 0.0, 0.25, 0.5, 0.75
}
4. while と repeat-while
回数が事前に決まらないときに使います。while は先頭判定、repeat-while(他言語の do-while 相当)は末尾判定なので必ず 1 回は実行されます。
// while(先頭判定)
var n = 0
while n < 5 {
print(n)
n += 1
}
// repeat-while(末尾判定 = 最低 1 回実行)
var m = 10
repeat {
print(m)
m -= 1
} while m > 0
5. break と continue
for i in 1...10 {
if i == 3 { continue } // 3 をスキップ
if i == 7 { break } // 7 で終了
print(i) // 1, 2, 4, 5, 6
}
多重ループからの脱出(ラベル付き break)
outer: for i in 1...3 {
for j in 1...3 {
if i == 2 && j == 2 {
break outer // 外側ループごと抜ける
}
print("\(i)-\(j)")
}
}
6. forEach と for-in の違い
関数型風に書きたいときは Sequence の forEach も使えますが、forEach の中では break / continue / return(外側関数からの早期 return)が使えません。離脱が必要なら for-in を選びます。
[1, 2, 3].forEach { print($0) } // OK
// [1, 2, 3].forEach { if $0 == 2 { break } } // ❌ コンパイルエラー
7. where 句で条件絞り込み
for-in に where を付けると、条件を満たす要素だけ処理できます。if + continue を書く代わりに 1 行で済みます。
for i in 1...10 where i.isMultiple(of: 2) {
print(i) // 2, 4, 6, 8, 10
}
サンプル: 配列の中身を表示
// 基本的な繰り返し文
for i in 1...10 {
print(i)
}
// 配列の中身を表示
var array = ["aaa", "bbb", "ccc"]
for val in array {
print(val)
}
出力結果
1
2
3
4
5
6
7
8
9
10
aaa
bbb
ccc
まとめ
| 構文 | 使いどころ |
|---|---|
for i in 1...n | 回数が決まっている繰り返し |
for v in array | コレクションの全要素処理 |
for (i, v) in array.enumerated() | インデックスも必要なとき |
stride(from:to:by:) | ステップ・小数・逆順を細かく制御 |
while | 条件が満たされる間続ける |
repeat-while | 最低 1 回は実行したい |
break / continue / ラベル | 途中離脱・スキップ・多重脱出 |
関連
- Swift — 親カテゴリ
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?