ループで範囲を使う
toとuntilで反復処理します。
「ループで範囲を使う」はCoddyKit上の無料Scala for Backend Engineering & Functional Programmingレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはScala for Backend Engineering & Functional Programming学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Scala for Backend Engineering & Functional Programmingコースには全4レッスンが含まれています。
レンジを使ったループ
レンジとループは自然な組み合わせです。レンジによって、反復処理に使える整然とした数値列を用意できます。
このレッスンでは、レンジを使ってforループを動かし、値を絞り込み、結果を作成する方法を説明します。
基本的なforループ
典型的なカウントループでは、forとレンジを組み合わせます。
変数iはレンジ内の各値を順番に取ります。ここでは1から5までを、それぞれ別の行に出力します。
for (i <- 1 to 5) println(i)ループでuntilを使う
配列の位置のようなインデックスを扱う場合、untilが適していることがよくあります。
上限値の1つ手前で止まるため、0始まりのインデックスと完全に一致します。
for (i <- 0 until 3) println(s"index $i")ループでステップを指定する
byとループを組み合わせると、値を飛ばしながら処理できます。
ここでは2つずつ進み、0から10までの偶数を出力します。
for (i <- 0 to 10 by 2) println(i)逆方向にカウントする
負のステップを指定すると、ループを逆方向に実行できます。
これはカウントダウンする最も簡単な方法で、ここでは3から1まで処理します。
for (i <- 3 to 1 by -1) println(i)合計を累積する
レンジを使ったループは、合計値の累積に適しています。
ここでは可変変数を使い、1から5までのすべての数値を累積合計に加えています。
var total = 0
for (i <- 1 to 5) total += i
println(total)ガードで絞り込む
forループにはガードを含められます。ガードとは、不要な値をスキップするif条件です。
ここでは偶数だけがガードを通過し、出力されます。
for (i <- 1 to 10 if i % 2 == 0) println(i)forでリストを構築する
yieldを追加すると、ループを新しいコレクションを構築する式に変えられます。
これにより、何も出力せずに平方数のシーケンスが生成されます。
val squares = for (i <- 1 to 5) yield i * i
println(squares.toList)ネストしたループ
1つのforに2つの範囲を指定すると、ネストしたループを作成できます。
これにより各行と各列が組み合わされ、小さなグリッドのすべての組み合わせが出力されます。
for (r <- 1 to 2; c <- 1 to 2) println(s"($r,$c)")foreachでループする
範囲では、forの代わりにforeachも使用できます。
各要素に対して関数を実行します。多くのScala開発者は読みやすさのためにforを好みますが、どちらも機能します。
(1 to 3).foreach(i => println(i))コレクションのインデックス指定
コレクションを位置でループする一般的なパターンでは、indicesを使用します。
indicesの範囲はリストで有効な位置と一致するため、各インデックスを安全に使用できます。
val names = List("Ann", "Ben", "Cy")
for (i <- names.indices) println(s"$i: ${names(i)}")理解度チェック
ループでの範囲について学んだことを確認しましょう。
まとめ
範囲はループの基盤です。for (i <- a to b)で反復し、byで刻み幅を指定し、負の刻み幅でカウントダウンし、ガードで絞り込みます。
yieldで新しいコレクションを構築し、範囲をネストしてグリッドを作り、indicesでコレクションを位置に基づいて走査します。これでコースは修了です。
AI チューターと学ぶ Scala — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 39
- レッスン
- 143
よくある質問
「ループで範囲を使う」レッスンは無料ですか?
はい。「ループで範囲を使う」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Scala for Backend Engineering & Functional Programmingコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Scala for Backend Engineering & Functional Programmingコースには全4レッスンが含まれています。
「ループで範囲を使う」で何を学びますか?
toとuntilで反復処理します。 ブラウザで直接実行するハンズオンコードでScala for Backend Engineering & Functional Programmingを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Scala for Backend Engineering & Functional Programmingを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのScala for Backend Engineering & Functional Programmingは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「ループで範囲を使う」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このScala for Backend Engineering & Functional Programmingレッスンでコードを書いて実行できますか?
はい。すべてのScala for Backend Engineering & Functional Programmingレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。