8.6. foreach operatori foreach operatori maxsus tashkil qilingan gurux ma’lumotlarini o‘qish uchun qo‘llaniladi. Massivlar xuddi shunday guruxlar sirasiga kiradi. Ushbu operatordan foydalanishni qulayligi shundaki, massivning elementlari sonini bilish talab etilmaydi va elementlar navbatma-navbat tartib nomeri(indeksi) bo‘yicha o‘qilaveradi. Sintaksisi:
foreach(in) sikl tanasi foreach operatoridan foydalanilganda, kontaynerning elementlari navbatma-navbat ko‘rsatilgan o‘zgaruvchiga o‘zlashtirib boriladi. Har bir siklda o‘zgaruvchi kontaynerning navbatdagi elementi qiymati o‘zlashtiriladi. Kontayner sifatida ko‘proq massivlar qo‘llaniladi. O‘zgaruvchining tipi kontayner elementi tipiga mos bo‘lishi talab etiladi.
8.6.1. listingda massivning manfiy elementlari yig‘indisi va ularning sonini hamda eng katta elementini foreach operatoridan foydalanib topish dasturi keltirilgan.
using System; namespace ConsoleApplication1 { class Class1 { static void Main() { int[] a = { 3, 12, 5, -9, 8, -4 }; Console.WriteLine( "Massiv:" ); foreach ( int elem in a ) Console.Write( "\t" + elem ); Console.WriteLine(); long sum = 0; // manfiy elementlar summasi int num = 0; // Manfiy elementlar soni foreach ( int elem in a ) if ( elem < 0 ) { sum += elem; ++num; } Console.WriteLine( "sum = " + sum ); Console.WriteLine( "num = " + num ); int max = a[0]; // eng katta element foreach ( int elem in a ) if ( elem > max ) max = elem; Console.WriteLine( "max = " + max ); Console.Readkey(); } } } Listing 8.1. bir o‘lchamli massivlar bilan ishlashda foreach operatoridan foydalanish
Foreach opertoridan foydalanib, konteynerdagi elementlar qiymatini faqatgina o‘qish mumkin.
8.2-listingda pog‘anasimon massivlar bilan ishlashda foreach operatoridan foydalanilgan dastur qismi keltirilgan
... int[][] a = new int[3][]; a[0] = new int [5] { 24, 50, 18, 3, 16 }; a[1] = new int [3] { 7, 9, -1 }; a[2] = new int [4] { 6, 15, 3, 1 }; Console.WriteLine( "Joriy massiv:" ); foreach ( int [] mas1 in a ) { foreach ( int x in mas1 ) Console.Write( "\t" + x ); Console.WriteLine(); } // Massivning birinchi qatoridan 18 ga teng elementni topish: Console.WriteLine( Array.IndexOf( a[0], 18 ) ); ... Listing 8.2. Pog‘anasimon massivlar bilan ishlashda foreach operatorini qo‘llash