icon
icon

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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

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

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

 

 

田島悠介

今回は、繰り返し処理を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で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文のところでも説明しているよ。どの形式でも書けるように覚えておこう。

大石ゆかり

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

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

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

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

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

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する