Foreach kilpa naudojamas norint greitai kartoti konteinerio elementus (masyvą, vektorius ir kt.), neatliekant inicijavimo, testavimo ir padidinimo / mažinimo. Foreach kilpų darbas yra padaryti kažką kiekvienam elementui, o ne ką nors daryti n kartų. C kalboje nėra foreach ciklo, tačiau tiek C++, tiek Java palaiko foreach ciklo tipą. C++ kalboje jis buvo pristatytas C++ 11, o Java – JDK 1.5.0. Foreach ciklas naudojamas raktinis žodis dėl tiek C++, tiek Java.
Sintaksė:
for (data_type variable_name : container_name) { operations using variable_name }> Įvedus automatinį raktinį žodį C++ ir var raktinį žodį Java , mums nebereikia nurodyti kintamojo duomenų tipo foreach cikle. Tipo išvada aptinka konteinerio duomenų tipą ir automatiškai nustato tą patį duomenų tipą kintamajam, kuris naudojamas judėjimui.
Toliau pateiktame kode rodomas foreach ciklo naudojimo atvejis skirtingiems konteineriams kartu su auto/lim raktiniai žodžiai C++/Java .
C++/Java programa masyvui:
C++
// C++ program to demonstrate use of foreach for array> #include> using> namespace> std;> int> main()> {> >int> arr[] = { 10, 20, 30, 40 };> >// Printing elements of an array using> >// foreach loop> >// Here, int is the data type, x is the variable name> >// and arr is the array for which we want to iterate foreach> >cout<<>'Traversing the array with foreach using array's data type: '>;> >for> (>int> x : arr)> >cout<' '; // data type of x is set as int cout<<'
Traversing the array with foreach using auto keyword : '; for (auto x : arr) cout<' '; }> |
>
>
Java
// Java program to demonstrate use of foreach> public> class> Main {> >public> static> void> main(String[] args)> >{> >// Declaring 1-D array with size 4> >int> arr[] = {>10>,>20>,>30>,>40> };> >// Printing elements of an array using> >// foreach loop> >// Here, int is the data type, x is the variable name> >// and arr is the array for which we want to iterate foreach> >System.out.print(>'Traversing the array with foreach using array's data type: '>);> >for> (>int> x : arr)> >System.out.print(x+>' '>);> > >// data type of x is set as int> >System.out.print(>'
Traversing the array with foreach using auto keyword : '>);> >for> (var x : arr)> >System.out.print(x+>' '>);> >}> }> |
>
>Išvestis
Traversing the array with foreach using array's data type: 10 20 30 40 Traversing the array with foreach using auto keyword : 10 20 30 40>
C++ programa vektoriui:
C++
Parsisiųsti youtube vlc media player
#include> #include> using> namespace> std;> int> main()> {> >vector value{>'This'>,>'is'>,>'foreach'>,> >'example'>,>'using'>,>'vector.'> };> >cout <<>'Traversing the vector with foreach using '> >'vector's data type: '>;> >for> (string v : value) {> >cout << v <<>' '>;> >}> >cout <<>'
Traversing the vector with foreach using '> >'auto keyword : '>;> >for> (>auto> v : value)> >cout << v <<>' '>;> >return> 0;> }> |
>
>Išvestis
Traversing the vector with foreach using vector's data type: This is foreach example using vector. Traversing the vector with foreach using auto keyword : This is foreach example using vector.>
Java programa, skirta ArrayList:
Java
/*package whatever //do not write package name here */> import> java.util.*;> class> GFG {> >public> static> void> main(String[] args)> >{> >ArrayList list =>new> ArrayList();> >list.add(>3>);> >list.add(>24>);> >list.add(->134>);> >list.add(->2>);> >list.add(>100>);> >for> (>int> element : list) {> >System.out.print(element +>' '>);> >}> >}> }> |
>
testavimo tipai
>Išvestis
3 24 -134 -2 100>
C++/Java programa rinkiniui:
C++
#include> #include> using> namespace> std;> int> main() {> >set<>int>>reikšmė = {6, 2, 7, 4, 10, 5, 1};> > >cout<<>'Traversing the set with foreach using set's data type: '>;> >for> (>int> v : value) {> >cout<' '; } cout<<'
Traversing the set with foreach using auto keyword : '; for (auto v : value) cout<' '; return 0; }> |
>
>
Java
import> java.util.*;> > public> class> GFG {> > >public> static> void> main(String[] args)> >{> >Set hash_Set =>new> HashSet();> >hash_Set.add(>'Geeks'>);> >hash_Set.add(>'For'>);> >hash_Set.add(>'Geeks'>);> >hash_Set.add(>'Foreach'>);> >hash_Set.add(>'Example'>);> >hash_Set.add(>'Set'>);> > >System.out.print(>'Traversing the set with foreach using set's data type: '>);> >for>(String hs : hash_Set) {> >System.out.print(hs+>' '>);> >}> > >System.out.print(>'
Traversing the set with foreach using auto keyword : '>);> >for> (var hs : hash_Set) {> >System.out.print(hs+>' '>);> >}> > >}> }> |
>
>Išvestis
Traversing the set with foreach using set's data type: 1 2 4 5 6 7 10 Traversing the set with foreach using auto keyword : 1 2 4 5 6 7 10>
Pastaba: Masyvui, vektoriui ir rinkiniui galime naudoti skirtingus duomenų tipus.
C++/Java programa žemėlapiui:
C++14
#include> #include> using> namespace> std;> int> main() {> >map<>int>, string>žemėlapisPavyzdys;> >mapExample.insert(pair<>int>, string>(1,>>));> >mapExample.insert(pair<>int>, string>(2,>>));> >mapExample.insert(pair<>int>, string>(3,>>));> >mapExample.insert(pair<>int>, string>(4,>>));> >mapExample.insert(pair<>int>, string>(5,>>));> >mapExample.insert(pair<>int>, string>(6,>>));> > >cout<<>'Traversing the map with foreach using map's data type
'>;> >for> (pair<>int>, string>mpEx : žemėlapisPavyzdys ) {> >cout<' '< } cout<<'
Traversing the map with foreach using auto keyword
'; for (auto mpEx : mapExample){ cout<' '< } return 0; }> |
>
>
Java
import> java.io.*;> import> java.util.Map;> import> java.util.HashMap;> class> GFG {> >public> static> void> main (String[] args) {> >Map gfg =>new> HashMap();> > >gfg.put(>1>,>'Geeks'>);> >gfg.put(>2>,>'4'>);> >gfg.put(>3>,>'Geeks'>);> >gfg.put(>4>,>'Map'>);> >gfg.put(>5>,>'Foreach'>);> >gfg.put(>6>,>'Example'>);> > >System.out.println(>'Traversing the map with foreach using map's data type'>);> >for> (Map.Entry entry : gfg.entrySet())> >System.out.println(entry.getKey() +>' '> + entry.getValue());> > >System.out.println(>'
Traversing the map with foreach using auto keyword'>);> >for> (var entry : gfg.entrySet())> >System.out.println(entry.getKey() +>' '> + entry.getValue());> >}> }> |
>
>
„Apple“ emocijos „Android“.Išvestis
Traversing the map with foreach using map's data type 1 Geeks 2 4 3 Geeks 4 Map 5 Foreach 6 Example Traversing the map with foreach using auto keyword 1 Geeks 2 4 3 Geeks 4 Map 5 Foreach 6 Example>
Foreach kilpos pranašumai:
- Padaro kodą skaitomesnį.
- Pašalina per didelio arba nepakankamo duomenų paleidimo klaidas.
Foreach kilpos trūkumas:
- Negalima kartoti elementų atvirkštine tvarka.
- Bus pasiekiamas kiekvienas elementas, tarp kurių negalima praleisti jokių elementų.