logo

Foreach in C++ und Java

Foreach-Schleife wird verwendet, um schnell über die Elemente eines Containers (Array, Vektoren usw.) zu iterieren, ohne Initialisierung, Tests und Inkrementierung/Dekrementierung durchzuführen. Die Funktionsweise von foreach-Schleifen besteht darin, für jedes Element etwas zu tun, anstatt etwas n-mal auszuführen. In C gibt es keine foreach-Schleife, aber sowohl C++ als auch Java unterstützen den foreach-Schleifentyp. In C++ wurde es in C++ 11 und Java in JDK 1.5.0 eingeführt. Das für die foreach-Schleife verwendete Schlüsselwort lautet für sowohl in C++ als auch in Java.

Syntax:



for (data_type variable_name : container_name) { operations using variable_name }>

Mit der Einführung des Schlüsselworts auto in C++ und des Schlüsselworts var in Java müssen wir den Datentyp für die Variable in der foreach-Schleife nicht mehr angeben. Die Typinferenz erkennt den Datentyp des Containers und legt automatisch denselben Datentyp für die Variable fest, die zum Durchlaufen verwendet wird.

Der folgende Code zeigt den Anwendungsfall der foreach-Schleife für verschiedene Container zusammen mit Auto/Limit Schlüsselwörter in C++/Java .

C++/Java-Programm für Array:



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

>

>

Ausgabe

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++-Programm für Vektor:

C++


MySQL-Benutzer erstellen



#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;> }>

throw wirft in Java

>

>

Ausgabe

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-Programm für 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 +>' '>);> >}> >}> }>

>

>

Ausgabe

3 24 -134 -2 100>

C++/Java-Programm für Set:

C++




#include> #include> using> namespace> std;> int> main() {> >set<>int>>Wert = {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+>' '>);> >}> > >}> }>

>

>

Ausgabe

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>

Notiz: Wir können in foreach verschiedene Datentypen für Array, Vektor und Set verwenden.

js-Array

C++/Java-Programm für Karte:

C++14




#include> #include> using> namespace> std;> int> main() {> >map<>int>, string>mapExample;> >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: mapExample) {> >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());> >}> }>

>

>

Ausgabe

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>

Vorteile der foreach-Schleife:

  • Macht den Code besser lesbar.
  • Beseitigt die Fehler, die durch Über- oder Unterschreitung der Daten entstehen.

Nachteil der foreach-Schleife:

  • Die Elemente können nicht in umgekehrter Reihenfolge durchlaufen werden.
  • Auf jedes einzelne Element wird zugegriffen, es können keine Elemente dazwischen übersprungen werden.