Foreach silmukka käytetään iteroimaan säilön elementtejä (joukko, vektorit jne.) nopeasti ilman alustusta, testausta ja lisäystä/vähennystä. Foreach-silmukoiden toiminta on tehdä jotain jokaiselle elementille sen sijaan, että tekisi jotain n kertaa. C:ssä ei ole foreach-silmukkaa, mutta sekä C++ että Java tukevat foreach-silmukkaa. C++:ssa se otettiin käyttöön C++ 11:ssä ja Java:ssa JDK 1.5.0. Foreach-silmukassa käytetty avainsana on varten sekä C++:ssa että Javassa.
Syntaksi:
for (data_type variable_name : container_name) { operations using variable_name }> Kun auto-avainsana C++:ssa ja var-avainsana Javassa otettiin käyttöön, meidän ei enää tarvitse määrittää muuttujan tietotyyppiä foreach-silmukassa. Tyyppipäätelmä havaitsee säilön tietotyypin ja asettaa automaattisesti saman tietotyypin kuljetuksiin käytetylle muuttujalle.
Alla oleva koodi näyttää foreach-silmukan käyttötapauksen eri säilöille sekä auto/lim avainsanat sisään C++/Java .
C++/Java-ohjelma taulukolle:
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+>' '>);> >}> }> |
>
>Lähtö
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++-ohjelma vektorille:
C++
java-koodiesimerkkejä
#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;> }> |
>
>Lähtö
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-ohjelma ArrayListille:
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 +>' '>);> >}> >}> }> |
>
null tarkistus javassa
>Lähtö
3 24 -134 -2 100>
C++/Java-ohjelma sarjalle:
C++
#include> #include> using> namespace> std;> int> main() {> >set<>int>>arvo = {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+>' '>);> >}> > >}> }> |
>
>Lähtö
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>
Huomautus: Voimme käyttää erilaisia tietotyyppejä foreachissa taulukolle, vektorille ja joukolle.
C++/Java-ohjelma kartalle:
C++14
#include> #include> using> namespace> std;> int> main() {> >map<>int>, string>karttaEsimerkki;> >mapExample.insert(pair<>int>, string>(1,>'Geeks'>));> >mapExample.insert(pair<>int>, string>(2,>'4'>));> >mapExample.insert(pair<>int>, string>(3,>'Geeks'>));> >mapExample.insert(pair<>int>, string>(4,>'Map'>));> >mapExample.insert(pair<>int>, string>(5,>'Foreach'>));> >mapExample.insert(pair<>int>, string>(6,>'Example'>));> > >cout<<>'Traversing the map with foreach using map's data type
'>;> >for> (pair<>int>, string>mpEx : karttaEsimerkki ) {> >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());> >}> }> |
>
>
roomalainen numero 1-100Lähtö
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-silmukan edut:
- Tekee koodista luettavamman.
- Poistaa tietojen yli- tai aliajosta liittyvät virheet.
Foreach-silmukan haittapuoli:
- Elementtejä ei voi iteroida käänteisessä järjestyksessä.
- Jokaista elementtiä käytetään, eikä välissä olevia elementtejä voi ohittaa.