繰り返し処理を扱う!Scalaでforeach文を使う方法【初心者向け】

初心者向けにScalaでforeach文を使う方法について解説しています。繰り返し処理を行うforeach文ですが、書き方やfor文との違いについて説明。実際にサンプルプログラムを書いて実行しているので、書きながら理解していきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

今回は、Scalaでforeach文を使う方法を解説します。

ループ処理ではfor文もありますが、for文との書き方の違いについても理解しておきましょう。

 

なお本記事は、TechAcademyのScalaオンライン講座の内容をもとに作成しています。

 

田島悠介

今回は、繰り返し処理をforeachで書いてみよう。

大石ゆかり

田島メンター!繰り返しといえばfor文がありましたが、どのように書き方が違ってくるんでしょうか〜?

田島悠介

そうだね。まずはforとforeach、それぞれの基本的な形を見てみよう。

大石ゆかり

分かりました!

foreach文とは

Scalaのforeachとは、単純なループ処理を意味します。

ループ処理とは、日本語で言えば繰り返し処理と言って、同じ処理を一定回数反復して処理することです。

ループ処理自体に関してはfor文に関する説明で、実際の現場で使われる方法含め解説しています。

Scalaでfor文を使う方法についてもまとめているので、合わせてご覧ください。

 

foreach文の書き方

基本的なforの文法

文法

for (変数 <- コレクション) {
  処理内容
}

解説

変数にコレクションが代入される間は、繰り返しfor文の処理内容が実行されます。

 

基本的なforeachの文法

文法

コレクション.foreach(変数 => 処理内容)

解説

基本的なfor文の処理内容では、単純な繰り返し処理として実装されています。

この場合、基本的なforeachの文法の状態として展開されて処理されます。

今回のforeach文とfor文の処理は同じ処理内容ということです。

 

田島悠介

forとforeachでシンプルな繰り返しを行う場合の書き方になるよ。

大石ゆかり

ここでは、どちらも同じ処理になるということですね。

田島悠介

次に実際の例で確認してみよう。今回は3の倍数を順に表示していく処理をforとforeachでやってみるよ。

[PR]Scalaで挫折しない学習方法を動画で公開中

Scalaでforeachを実際に書いてみよう

1から10まで表示するfor文とforeach文

ソースコード

object Main extends App {
  //for文を書いてみる
  for(i <- 1 to 10){
    println(i*3)
  }

  //foreach文を書いてみる
  (1 to 10).foreach( i => println(i*3 + "です。"))
}

表示結果(for文の部分)

3
6
9
12 
15
18
21
24
27
30

表示結果(foreach文の部分)

3です。
6です。
9です。
12です。
15です。
18です。
21です。
24です。
27です。
30です。

解説

1行目のobject Main extends App {では、ScalaのAppという機能をextend(継承し再利用)してMainという名前のObject(オブジェクト)を宣言しています。

2行目の、for(i <- 1 to 10){では、for文の条件を指定しています。

1 to 10では、具体的に生成する数字を指定しています。ここでは、1から10の数字を順番に生成します。

3行目の、println(i*3)では、iかける3の計算式を表示しています。

4行目の、}では、2行目のfor文の処理を終了しています。

5行目の、(1 to 10).foreach( i => println(i*3 + “です。”))では、2行目から4行目のfor文の処理と同じ処理を行っています。

表示結果からforeach文の処理だとわかるように、計算結果の最後に、です。を加えて表示しています。

(1 to 10)の部分でコレクションを指定しています。for文の際と同様、1から10までの数字を生成しています。

iにはコレクションで生成された数字が代入されます。

その結果、println(i*3 + “です。”)で、変数iに代入された数字と3の掛け算の結果が表示されます。

6行目の、}では、1行目の処理を終了しています。

 

コード情報の表示する場合は次のものをご利用ください。

https://ideone.com/nxDqY2

 

以上、Scalaでforeachを使う方法を解説しました。

for文と合わせてループ処理の使い方を理解しておきましょう。

 

田島悠介

1から10の数値に3を掛けた値を出力する処理を、forとforeach両方で行った結果だね。

大石ゆかり

それぞれ同じ数値が表示されているのが分かりますね。

田島悠介

繰り返し処理それぞれの細かい違いについては、for文のところでも説明しているよ。どの形式でも書けるように覚えておこう。

大石ゆかり

了解です。ありがとうございました!

また、オンラインのプログラミングスクールTechAcademyでは、Scalaオンライン講座を開催しています。

Scalaを使ってWebアプリケーションを開発することができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

この記事を監修してくれた方

中本賢吾(なかもとけんご)
アジマッチ有限会社 代表取締役社長

開発実績:PHPフレームワークを利用した会員制SNS・ネットショップ構築、AWSや専用サーバー下でLinuxを使用したセキュアな環境構築、人工知能を利用したシステム開発、店舗検索スマホアプリ開発など。

その他にも地域の職業プログラマー育成活動を行い、2018年には小学生がUnityで開発したオリジナルAndroidアプリをGooglePlayでリリース。ゲームで遊ぶより作ろうぜ!を合言葉に、小学生でも起業できる技術力を育成可能で有ることを証明し続けている。