Scala for Backend Engineering & Functional Programming · レッスン

ループで範囲を使う

toとuntilで反復処理します。

レッスン 4/413 ステップ

「ループで範囲を使う」は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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. タプルを作成する
  2. タプルを分解する
  3. 範囲を構築する
  4. ループで範囲を使う
← Scala for Backend Engineering & Functional Programmingに戻る