Foreach C++:ssa ja Javassa

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++




#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 +> ' '> );> > }> > }> }>

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());> > }> }>

Lä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.