logo

Foreach у C++ і Java

Foreach цикл використовується для швидкого перебору елементів контейнера (масиву, векторів тощо) без виконання ініціалізації, тестування та збільшення/зменшення. Робота циклів foreach полягає в тому, щоб робити щось для кожного елемента, а не робити щось n разів. У C немає циклу foreach, але C++ і Java підтримують тип циклу foreach. У C++ він був представлений у C++ 11 і Java у JDK 1.5.0 Ключове слово, яке використовується для циклу foreach, таке для як на C++, так і на Java.

Синтаксис:



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

З появою ключового слова auto в C++ і ключового слова var в Java нам більше не потрібно вказувати тип даних для змінної в циклі foreach. Висновок типу визначає тип даних контейнера та автоматично встановлює той самий тип даних для змінної, яка використовується для обходу.

Наведений нижче код відображає варіант використання циклу foreach для різних контейнерів разом із авто/лім ключові слова в C++/Java .

Програма C++/Java для масиву:



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

>

>

Вихід

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++ для вектора:

C++


читати файл csv у java



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

>

>

Вихід

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

>

>

Вихід

3 24 -134 -2 100>

Програма C++/Java для набору:

C++




#include> #include> using> namespace> std;> int> main() {> >set<>int>>значення = {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+>' '>);> >}> > >}> }>

>

>

Вихід

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>

Примітка: Ми можемо використовувати різні типи даних у foreach для масиву, вектора та набору.

Програма C++/Java для карти:

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


таблиця ascii 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());> >}> }>

>

>

Вихід

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:

  • Робить код більш читабельним.
  • Усуває помилки перевиконання або недозаповнення даних.

Недолік циклу foreach:

  • Не можна перебирати елементи у зворотному порядку.
  • Кожен елемент буде доступний, не можна пропускати елементи між ними.