User Tools

Site Tools


foreach

foreach Schleife

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.

Bash

Die Bash kennt kein foreach.

C++

C++ kann das nur mit Hilfe der Standard Library

Das Programm

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

Kompilieren und ausführen

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

C#

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

Golang

Go kennt eigentlich keine foreach Schleife.

Java

Das Programm

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

Kompilieren und ausführen

Die Datei ForEachLoop.java mit obigen Inhalt erstellen und so starten

javac ForEachLoop.java # kompilieren
java ForEachLoop       # ausführen

JavaScript

Das Programm

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

Ausführen

Den obigen Code in die Datei foreach.html kopieren und im Browser öffnen.

Perl

Das Programm

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

Ausführen

Das obige Perl Skript in die Datei foreach.pl einfügen und so laufen lassen:

perl foreach.pl

PHP

Das Programm

<?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++;
}

Ausführen

Den obigen Quelltext in die Datei foreach.php einfügen und wie folgt zum Laufen bringen.

php foreach.php

Python3

Das Programm

#!/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

Ausführen

foreach.py mit obigen Inhalt erstellen und so ausführen:

python3 foreach.py
foreach.txt · Last modified: 2017/06/29 10:47 by gg