Die foreach Schleife ist die einfachste aller Schleifen. Sie hat keinen Zähler mehr und funktioniert auf Basis von iterierbaren Datenstrukturen
In den folgenden Beispielen wird ein Array bzw. ein Vector (mehr dazu unter Datenstrukturen) angelegt und mit einer foreach Schleife jedes Element des Arrays ausgegeben.
Die Bash kennt kein foreach.
C++ kann das nur mit Hilfe der Standard Library
#include <vector> // vector #include <algorithm> // std:: #include <iostream> // cout int main() { // Vector anlegen. Ein Vector ist bei C++ im Vergleich zu einem Array iterierbar std::vector<int> fib{0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55}; // Definiere die Funktion die aufgerufen wird... auto print = [](const int& n) { std::cout << " " << n; }; // ...für jedes Element in diesem Vector std::for_each(fib.begin(), fib.end(), print); // eine neue Zeile am Ende ausgeben std::cout << "\n"; }
Die Datei foreach.cpp mit dem obigen Code erstellen und so zum Laufen bringen:
g++ -Wall -g -std=c++14 foreach.cpp -o foreach # kompilieren ./foreach # ausführen
using System; namespace ForLoop { class ShowFor { static void Main() { // Anlegen eines Arrays int[] fibarray = new int[] { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 }; // für jedes Element im Array foreach (int element in fibarray) { System.Console.WriteLine(element); } } } }
Go kennt eigentlich keine foreach Schleife.
public class ForEachLoop { public static void main(String[] args) { // Anlegen eines Array int [] fibarray = {0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55}; // für jedes element for(int u : fibarray) { // das element ausgeben System.out.println( u ); } } }
Die Datei ForEachLoop.java mit obigen Inhalt erstellen und so starten
javac ForEachLoop.java # kompilieren java ForEachLoop # ausführen
<!DOCTYPE HTML> <!-- HTML Grundstruktur --> <html> <body> <script> // definieren der Funktion, die ausgeführt werden soll function alerter(item, index) { alert("fibonacci number "+index+" is "+item); } // anlegen des Arrays var fibarray = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 ]; // für jedes Element des Arrays die oben definierte Funktion ausführen fibarray.foreach(alerter); </script> </body> </html>
Den obigen Code in die Datei foreach.html kopieren und im Browser öffnen.
#!/usr/bin/perl use strict; use warnings; # Anlegen des Arrays my @fiblist = (0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55); my $i = 0; # Für jedes Element in der Liste eine Ausgabe machen foreach $a (@fiblist){ print "fibonacci number $i is $a\n"; $i = $i + 1; }
Das obige Perl Skript in die Datei foreach.pl einfügen und so laufen lassen:
perl foreach.pl
<?php // Anlegen des Arrays $arr = array(0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55); $i = 0 // Für jedes Element dessen Wert ausgeben foreach ($arr as &$value) { echo "fibonacci number $i is $value\n"; $i++; }
Den obigen Quelltext in die Datei foreach.php einfügen und wie folgt zum Laufen bringen.
php foreach.php
#!/usr/bin/python # Anlegen des Arrays fib = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55] i = 0 # Für jedes Element des Arrays die Ausgabe tätigen for v in fib: print("fibonacci number "+str(i)+" is "+v); i = i + 1
foreach.py mit obigen Inhalt erstellen und so ausführen:
python3 foreach.py