English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دائرة for Scala

دورات في Scala

جملة دائرة for في Scala تسمح لك بكتابة بنية دائرة تكرارية تنفذ مرة واحدة.

جملة

في لغة Scala دائرة جملة الدائرة:

لـ( var x <- Range ){
   statement(s);
}

في الجملة السابقة،Range يمكن أن يكون عرضًا للمناطق الرقمية i to j ، أو i until j، يشير السهم الأيسر <- إلى تخصيص المتغير x.

مثال على الإنترنت

في هذا المثال، تم استخدام i to j مثال على الجملة (يحتوي على j):

object Test {
   def main(args: Array[String]) {
      var a = 0;
      // دورة for
      لـ( a <- 1 to 10){
         println( "قيمة a: " + a );
      }
   }
}

النتيجة التي تنتج عن تنفيذ الكود أعلاه هي:

$ scalac Test.scala
$ scala Test
قيمة a: 1
قيمة a: 2
قيمة a: 3
قيمة a: 4
قيمة a: 5
قيمة a: 6
قيمة a: 7
قيمة a: 8
قيمة a: 9
قيمة a: 10

في هذا المثال، تم استخدام i until j مثال على الجملة (لا يحتوي على j):

object Test {
   def main(args: Array[String]) {
      var a = 0;
      // دورة for
      لـ( a <- 1 until 10){
         println( "قيمة a: " + a );
      }
   }
}

النتيجة التي تنتج عن تنفيذ الكود أعلاه هي:

$ scalac Test.scala
$ scala Test
قيمة a: 1
قيمة a: 2
قيمة a: 3
قيمة a: 4
قيمة a: 5
قيمة a: 6
قيمة a: 7
قيمة a: 8
قيمة a: 9

في دائرة for يمكنك استخدام نقطة السطر (;) لضبط عدة مناطق، وسيعبر عن جميع القيم المحتملة في المناطق المحددة. هذا المثال يوضح دائرة for بمناطق متعددة:

object Test {
   def main(args: Array[String]) {
      var a = 0;
      var b = 0;
      // دورة for
      لـ( a <- 1 to 3; b <- 1 to 3){
         println( "قيمة a: " + a );
         println( "قيمة b: " + b );
      }
   }
}

النتيجة التي تنتج عن تنفيذ الكود أعلاه هي:

$ scalac Test.scala
$ scala Test
قيمة a: 1
قيمة b: 1
قيمة a: 1
قيمة b: 2
قيمة a: 1
قيمة b: 3
قيمة a: 2
قيمة b: 1
قيمة a: 2
قيمة b: 2
قيمة a: 2
قيمة b: 3
قيمة a: 3
قيمة b: 1
قيمة a: 3
قيمة b: 2
قيمة a: 3
قيمة b: 3

دائرة for المجموعة

جملة الجملة التي تستخدمها في دائرة for لتصفية المكونات هي:

لـ( x <- List ){
   statement(s);
}

في الجملة السابقة، List المعلمة هي مجموعة، ودائرة for ستتكرر عبر جميع عناصر المجموعة.

مثال على الإنترنت

في هذا المثال، سيقوم الدائرة by for بتكرار مجموعة الأرقام. List() لإنشاء مجموعة. سنقوم بتوضيح المجموعات في الفصول القادمة.

object Test {
   def main(args: Array[String]) {
      var a = 0;
      val numList = List(1,2,3,4,5,6);

      // دورة for
      لـ( a <- numList ){
         println( "قيمة a: " + a );
      }
   }
}

النتيجة التي تنتج عن تنفيذ الكود أعلاه هي:

$ scalac Test.scala
$ scala Test
قيمة a: 1
قيمة a: 2
قيمة a: 3
قيمة a: 4
قيمة a: 5
قيمة a: 6

تصفية دائرة for

Scala يمكن أن تستخدم واحدة أو أكثر إذا استخدام الجملة لتصفية بعض العناصر.

هذا هو جملة الجملة التي تستخدمها في دائرة for لتصفية المكونات.

لـ( var x <- List
      if condition1; if condition2...
   {
   statement(s);

يمكنك استخدام نقطة السطر (;) لإضافة شرط تصفية واحد أو أكثر إلى التعبير.

مثال على الإنترنت

هذا مثال على تصفية في دائرة for

object Test {
   def main(args: Array[String]) {
      var a = 0;
      val numList = List(1,2,3,4,5,6,7,8,9,10);

      // دورة for
      لـ( a <- numList
           if a != 3; if a < 8 ){
         println( "قيمة a: " + a );
      }
   }
}

النتيجة التي تنتج عن تنفيذ الكود أعلاه هي:

$ scalac Test.scala
$ scala Test
قيمة a: 1
قيمة a: 2
قيمة a: 4
قيمة a: 5
قيمة a: 6
قيمة a: 7

استخدام for مع yield

يمكنك حفظ نتيجة دورة for كمتغير. صيغة النص هي:

var retVal = for{ var x <- List
     if condition1; if condition2...
}

انتبه إلى العلامات البرمجية الموجودة داخل الكوفيretVal هي متغير، والـ yield في الدورة سيسجل العنصر الحالي ويحفظه في المجموعة، وبعد انتهاء الدورة سيتم العودة إلى المجموعة.

مثال على الإنترنت

في هذا المثال، يتم عرض كيفية استخدام yield في دورة for:

object Test {
   def main(args: Array[String]) {
      var a = 0;
      val numList = List(1,2,3,4,5,6,7,8,9,10);

      // دورة for
      var retVal = for{ a <- numList
                        if a != 3; if a < 8
                      }

      // إدخال العودة
      for( a <- retVal){
         println( "قيمة a: " + a );
      }
   }
}

النتيجة التي تنتج عن تنفيذ الكود أعلاه هي:

$ scalac Test.scala
$ scala Test
قيمة a: 1
قيمة a: 2
قيمة a: 4
قيمة a: 5
قيمة a: 6
قيمة a: 7

دورات في Scala