繰り返し処理を扱う!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でやってみるよ。
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行目の処理を終了しています。
コード情報の表示する場合は次のものをご利用ください。
以上、Scalaでforeachを使う方法を解説しました。
for文と合わせてループ処理の使い方を理解しておきましょう。
1から10の数値に3を掛けた値を出力する処理を、forとforeach両方で行った結果だね。
それぞれ同じ数値が表示されているのが分かりますね。
繰り返し処理それぞれの細かい違いについては、for文のところでも説明しているよ。どの形式でも書けるように覚えておこう。
了解です。ありがとうございました!
この記事を監修してくれた方
中本賢吾(なかもとけんご) 開発実績:PHPフレームワークを利用した会員制SNS・ネットショップ構築、AWSや専用サーバー下でLinuxを使用したセキュアな環境構築、人工知能を利用したシステム開発、店舗検索スマホアプリ開発など。 その他にも地域の職業プログラマー育成活動を行い、2018年には小学生がUnityで開発したオリジナルAndroidアプリをGooglePlayでリリース。ゲームで遊ぶより作ろうぜ!を合言葉に、小学生でも起業できる技術力を育成可能で有ることを証明し続けている。 |