Scala For Loop | ScalaのForループ:説明

公開: 2021-02-19

Scalaでは、 forループfor-comprehensionsとも呼ばれます。 リハーサルされたコレクションを繰り返し、フィルタリングし、返すために使用できます。 for-comprehension、命令型言語for-loopと非常によく似ています。 ただし、違いは、頭韻法の結果のリストをまとめていることです。

Scalaにはいくつかの形式のforループがあり、以下に説明します。

目次

範囲のあるForループ

構文

Scalaで範囲を持つforループの最も単純な構文は、次のとおりです。

for(var x <-範囲){

ステートメント;

}

上に示したように、範囲は任意の範囲の数値であり、 iからjとして表されるか、場合によってはiからjまでのように表されます。 左矢印←演算子は、範囲から個々の値を生成するためジェネレーターと呼ばれます。

または、次の構文を使用することもできます。

for(w <-範囲){

//コード..

}

ここで、 wは変数、左矢印←演算子はジェネレーター、範囲は開始値と終了値を保持する値です。 範囲は、iからjまたはiからjまでのいずれかを使用して表されます。

キーワード'to'を使用したScalaFor-Loopの例

forループ「to」使用すると、開始値と終了値の両方が含まれます。 以下に示す例では、0からnまでの値を出力するために'to'を使用できます。 つまり、ループは0から始まり、10で終わります。つまり、ページ番号0から10を印刷できます。

//方法を説明するScalaプログラム

//toを使用してforループを作成します

オブジェクトメイン

{{

def main(args:Array [String])

{{

println( "wの値は次のとおりです:");

//ここで、forループは0から始まります

//そして10で終わります

for(w <-0から10)

{{

println(w);

}

}

}

出力:

上記の例では、wの値は次のとおりです。

0

1

2

3

4

5

6

7

8

9

10

読む:フルスタック開発者になるためのトップ10スキル

キーワード「until」を使用したScalaForループの例

untiltoの使用の違いは次のとおりです。 toには、範囲で指定された開始値と終了値が含まれますが、 untilは、指定された範囲の最後の値を除外します。 以下示すforループの例では、 untilを使用して0からn-1までの値を出力できます。 つまり、ループは0で始まり、n-1で終わり、9になります。したがって、ページ番号0から9を印刷できます。

//方法を説明するScalaプログラム

//までを使用してforループを作成します

オブジェクトメイン

{{

def main(args:Array [String])

{{

println( "wの値は次のとおりです:");

//ここで、forループは0から始まります

//そして10で終わります

for(w <-0から10まで)

{{

println(w);

}

}

}

出力:

上記の例では、wの値は次のとおりです。

0

1

2

3

4

5

6

7

8

9

また読む: Python vs Scala

Forループの複数の値

1つのforループで複数の範囲を使用することもできます これらの範囲は、セミコロン(;)を使用して区切られます。 イラストを使ってこれを理解しましょう。 以下の例では、1つのループで2つの異なる範囲、つまりw<-0から3を使用しています。 z<-8から10まで。

//方法を説明するScalaプログラム

//forループで複数の範囲を作成します

オブジェクトメイン

{{

def main(args:Array [String])

{{

//複数の範囲を持つforループ

for(w <-0〜3; z <-8〜10)

{{

println( "wの値は:" + w);

println( "yの値は:" + z);

}

}

}

出力:

wの値は0です

yの値は次のとおりです:8

wの値は0です

yの値は次のとおりです:9

wの値は1です

yの値は次のとおりです:8

wの値は:1です

yの値は次のとおりです:9

wの値は次のとおりです:2

yの値は次のとおりです:8

wの値は次のとおりです:2

yの値は次のとおりです:9

wの値は次のとおりです:3

yの値は次のとおりです:8

wの値は次のとおりです:3

yの値は次のとおりです:9

チェックアウト:インドのフルスタック開発者給与

コレクション付きのForループ

Scalaでは、 for-loopを使用して、 for-eachループまたはfor-comprehensionsループのいずれかを使用して、リストやシーケンスなどのコレクションを効率的に反復できます Scalaのコレクションを持つforループの構文は次のとおりです。

構文

for(var x <-リスト){

ステートメント;

}

ここで、変数リストは要素のリストを持つコレクションタイプであり、 forループはすべての要素を反復処理して一度にx変数の1つの要素を返します。

コレクションのあるforループを理解するために、以下のデモプログラムを見てみましょう この図では、 List変数を使用してコレクションを作成し、ランクに基づいて著者を一覧表示しています。

//方法を説明するScalaプログラム

//コレクションでforループを使用

オブジェクトメイン

{{

def main(args:Array [String])

{{

varランク=0;

valランクリスト=List(1、2、3、4、5、6、7、8、9、10);

//コレクション付きのForループ

for(ランク<-ランクリスト){

println( "作成者ランクは:" +ランク);

}

}

}

出力:

著者ランクは:1

著者ランクは:2

著者ランクは:3

著者ランクは:4

著者ランクは:5

著者ランクは:6

著者ランクは:7

著者ランクは:8

著者ランクは:9

著者ランクは:10

フィルタ付きのForループ

ScalaのForループを使用すると、 forループの1つ以上のifステートメントを使用して、特定のコレクションの要素をフィルタリングできます ユーザーは、セミコロン(;)を使用し'for'に複数のフィルターを追加してそれらを区切ることもできます。 以下にリストされているのは、フィルターを使用したforループの構文です

構文

for(varx<-リスト

条件1の場合; 条件2の場合…

){

ステートメント;

}

例を参考にして、これをよりよく理解しましょう。 次の図では、2つのフィルターを使用して、特定のコレクションを分離しています。 たとえば、以下のサンプルでは、​​フィルターにより、ランクが2より大きく7未満の著者のリストが削除されます。

//方法を説明するScalaプログラム

//フィルター付きのforループを使用

オブジェクトメイン

{{

def main(args:Array [String])

{{

varランク=0;

valランクリスト=List(1、2、3、4、5、6、7、8、9、10);

//フィルター付きのForループ

for(ランク<-ランクリスト

ランク<7の場合; ランク>2の場合)

{{

println( "作成者ランクは:" +ランク);

}

}

}

出力:

著者ランクは:3

著者ランクは:4

著者ランクは:5

著者ランクは:6

For-Loop with Yield

Scalaでは、ループの戻り値は変数に格納されるか、関数を介して返される場合があります。 これを行うには、 'for'式の本文の前にキーワードyieldを付ける必要があります 以下にリストされているのは、 yieldを使用したforループの構文です

構文

var retVal = for {varx<-リスト

条件1の場合; 条件2の場合…

}

収量x

-中括弧は変数と条件をリストし、 retValはxのすべての値がコレクションの形式で格納される変数です。

イラストを使ってこれをよりよく理解しましょう。 以下の例では、出力はすべてのランク値がコレクションの形式で格納されている変数です。 forループ、ランクが4より大きく8より小さい著者のリストのみが表示されます。

//方法を説明するScalaプログラム

//利回りのあるforループを使用します

オブジェクトメイン

{{

def main(args:Array [String])

{{

varランク=0;

valランクリスト=List(1、2、3、4、5、6、7、8、9、10);

//yieldsを使用したForループ

var output =for{ランク<-ランクリスト

ランク>4の場合; ランク!=8の場合}

歩留まりランク

//結果を表示します

for(ランク<-出力)

{{

println( "作成者ランクは:" +ランク);

}

}

}

出力:

著者ランクは:5

著者ランクは:6

著者ランクは:7

著者ランクは:9

著者ランクは:10

世界のトップ大学からオンラインでソフトウェア開発コース学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。

結論

フルスタックソフトウェア開発の詳細に興味がある場合は、upGrad&IIIT-Bのフルスタックソフトウェア開発のエグゼクティブPGプログラムをチェックしてください。これは、働く専門家向けに設計されており、500時間以上の厳格なトレーニング、9以上のプロジェクトを提供します。および割り当て、IIIT-B卒業生のステータス、実践的な実践的なキャップストーンプロジェクト、およびトップ企業との雇用支援。

Scalaプログラミング言語とは何ですか?

Scalaは、一般的なプログラミングパターンを簡潔でエレガント、そしてタイプセーフな方法で表現するように設計された汎用プログラミング言語です。 これは、関数型とオブジェクト指向のハイブリッド言語であり、高階関数や遅延評価などの関数型プログラミング構造をサポートしますが、クラス、オブジェクトリテラル、型推論などのオブジェクト指向言語の機能も備えています。 Scalaは、Java仮想マシン(JVM)用に設計された最も有名な言語の1つですが、JavaScriptソースコードにコンパイルしたり、.NET共通言語ランタイム(CLR)を使用したりすることもできます。

プログラミングのループとは何ですか?

ループは、ステートメントのブロックを別の回数(整数)繰り返すプログラミングステートメントです。 ループには、forとwhileの2種類があります。 ループは、特定の条件が満たされるまでコードのブロックを繰り返します。 ループを使用して、指定した基準が満たされるまで同じタスクを繰り返し実行できます。 ループには、forループ、whileループ、do whileループ、foreachループなどのいくつかのタイプがあります。 これらのタイプにはそれぞれ、独自の利点とユースケースがあります。 たとえば、配列を一定の回数ループする場合は、forループを使用できます。 条件に基づいてループする場合は、whileループを使用できます。 配列の要素にアクセスする場合は、foreachループを使用できます。

Scala言語の未来は何ですか?

Scalaは、関数型プログラミングの原則を組み込んだ汎用プログラミング言語です。 プラットフォームに依存しません。 Scalaは、型推論を備えた静的に型付けされた言語です。 また、コードをオブジェクト指向スタイルで記述することもできます。 Scalaには豊富なライブラリがあり、コーディングは簡潔です。 これらの要因により、Scalaは非常に人気のあるプログラミング言語になっています。 Javaプログラマーであれば、Scalaをより簡単に使用できます。 Javaプログラマーではなく、Scalaを使用したい場合は、Scalaインタープリターシステムを使用できます。 Scalaには急成長しているコミュニティがあり、ランキングでトップの座を獲得するのはもはや時間の問題ではありません。