Aug 07

Für Arrays gibt es zusätzlich eine veränderte/ erweiterte  Form der for-Schleife; statt

for (int b=0; b<a.length; b++)

System.out.println(a[b]);

hat

for (int b : a)

System.out.println(b);

den gleichen Effekt.

Tagged with:
Aug 05

Es gibt noch ein paar Kleinigkeiten, die ich erwähnen möchte, bevor wir das Kapitel “For-Schleifen” abschließen können;

Die Bedingung kann absolut unabhängig von der Intitialisierung sein:

for (int a=0; b <12 ; a++){

b++;

}

kompiliert daher fehlerfrei.

Das die Iteration weggelassen werden kann, haben ich ja schon erläutert. Sie kann aber auch durch etwas anderes ersetzt werden:

for (int a=0; b <12 ; System.out.println(“Hallo”)){

b++;

}

Die Ausgabe ist

Test
Test

Tagged with:
Aug 03

Wir haben ja schon besprochen, dass eine for-Schleife folgendermaßen aufgebaut ist:

for (<Initialisierung>;<Bedingung>;<Iteration>) { Schleifen-Inhalt }

Dies bedeutet aber nicht, dass jeder einzelne Bereich gefüllt werden muss.

for ( ; ; ) { … }

ist also eine valide Deklaration, auch wenn diese ohne Bedingung und Iteration eine Endlosschleife darstellt. Mit break kann diese Endlossschleife beendet werden:

int i=0;

for ( ; ; ){

if (i++==10)

break;

}

Häufiger als dies werden leere Teilbereiche innerhalb der For-Schleife benutzt:

int i = 10;
for ( ;i<5;i–){ … }

Tagged with:
Jul 31

Mit System.exit(0)  innerhalb einer for-Schleife wird das Programm sofort abgebrochen, eine Weiterführung der bestehenden Schleifen, des Unterprogrammes oder des Hauptprogrammes findet nicht statt.

class Angestellter {

public static void main(String args[]) {

System.out.println(“Start im Hauptprogramm: “);
Buchhalter.forSchleife();
// Aufruf der statischen Methode “forSchleife()” von Buchhalter.
System.out.println( “Ende des Hauptprogrammes”);// Hauptprogramm wird bei System.exit(0) nicht weiter ausgeführt

}

}

class Buchhalter extends Angestellter {

public static void forSchleife() {

System.out.println(“Start Unterprogramm: “);
for (int b=0; b<3; b++) {
// Schleife 1

for (int a=0; a < 10; ++a){ // Schleife 2

System.out.print(“\na: “+a);
if (a==2)

System.exit(0); // System-Ausstieg

}

System.out.print(” b: ” +b); // Schleife 1 kann bei Programmende nicht weiter ausgeführt werden

}

System.out.println(“\nEnde Unterprogramm”); // Da das Programm bei einem Wert a==2 beendetwird, wird diese Stelle nie erreicht.

}

}

Die Ausgabe ist demnach

Start im Hauptprogramm:
Start Unterprogramm:

a: 0
a: 1
a: 2

Tagged with:
Jul 29

Mit return innerhalb einer for-Schleife wird sofort ins Hauptprogramm zurückgekehrt, eine Weiterführung der bestehenden Schleifen oder des Unterprogrammes generell findet nicht statt.

class Angestellter {

public static void main(String args[]) {

System.out.println(“Start im Hauptprogramm: “);
Buchhalter.forSchleife();
// Aufruf der statischen Methode “forSchleife()” von Buchhalter.
System.out.println( “Ende des Hauptprogrammes”);

}

}

class Buchhalter extends Angestellter {

public static void forSchleife() {

System.out.println(“Start Unterprogramm: “);
for (int b=0; b<3; b++) {
// Schleife 1

for (int a=0; a < 10; ++a){ // Schleife 2

System.out.print(“\na: “+a);
if (a==2)

return; // Verlassen des Unterprogrammes, wenn a den Wert von 2 erreicht

}

System.out.print(” b: ” +b); // Schleife 1 wird bei return nicht weitergeführt

}

System.out.println(“\nEnde Unterprogramm”); // Da das Unterpgrogramm bei einem Wert a==2 verlassen wird, wird diese Stelle nie erreicht.

}

}

Die Ausgabe ist demnach

Start im Hauptprogramm:
Start Unterprogramm:

a: 0
a: 1
a: 2Ende des Hauptprogrammes

Tagged with:
Jul 27

Mit break springt man aus der aktuellen Schleife, alles arbeitet wie spezifiziert weiter:

class Angestellter  {

public static void main(String args[]) {

System.out.println(“Start im Hauptprogramm: “);
Buchhalter.forSchleife();
// Aufruf der statischen Methode “forSchleife()”  von Buchhalter.
System.out.println(    ”Ende des Hauptprogrammes”);

}

}

class Buchhalter extends Angestellter {

public static void forSchleife() {

System.out.println(“Start Unterprogramm: “);
for (int b=0; b<3; b++) {
// Schleife 1

for (int a=0; a < 10; ++a){ // Schleife 2

System.out.print(“\na: “+a);
if (a==2)

break; // Abbruch von Schleife 2 wenn a den Wert 2 erreicht

} // Wenn “break” greift, wird auch a nicht mehr (wie üblich) hochgezählt

System.out.print(” b: ” +b); // Die erste Schleife wird weitergeführt

}

System.out.println(“\nEnde Unterprogramm”);

}

}

Die Ausgabe ist demnach:

Start im Hauptprogramm:
Start Unterprogramm:

a: 0
a: 1
a: 2 b: 0
a: 0
a: 1
a: 2 b: 1
a: 0
a: 1
a: 2 b: 2
Ende Unterprogramm
Ende des Hauptprogrammes

Tagged with:
Jul 25

Bei der Iteration innerhalb einer For-Schleife bitte beachten, dass sich der Wert erst ändert, wenn der Schleifen-Inhalt abgearbeitet wird:

for (int a=0; a < 1; a++){

System.out.println(a); // Ausgabe: 0

} // erst hier wird a um 1 hochgezählt

Die Ausgabe ändert sich auch nicht bei einer Vor-Inkrementierung:

for (int a=0; a < 1; ++a){

System.out.println(a); // Ausgabe ist ebenfalls 0

} // Auch hier wird ebenfalls erst um 1 hochgezählt

Auch sind mehrere Iterationen möglich, die durch Komma getrennt werden:

for (int a=0, b=0; a < 1; a++, b++){ … }

Tagged with:
Jul 23

Grundsätzlich sind verschachtelte Bedingungen möglich:

int b=5;
for (int a = 0; a < 10 && b < 8; a++){

System.out.println(a);
b++;

}

Es handelt sich im Endeffekt um einen boolean-Wert, der zurückgegeben wird, da beide Bedingungen mit && verknüpft sind. Mehrfache Bedingungen wie z.B.

for (int a = 0; a < 10 , b < 8; a++) { }

sind nicht möglich

Tagged with:
Jul 21

Hier eine Tücke der Initialisierung innerhalb der for-Schleife

for ( int a = 1, b = 5; a <= b; a++ ) {  }

compiliert  problemlos, während

for ( int a = 1, int b = 5; a <= b; a++ ) { }

zu einem Compilerfehler führt. Dies hängt damit zusammen, dass wie bei Deklarationen von mehreren Variablen des selben Typs üblich diese nur durch ein Komma getrennt werden.

Ebenfalls zu einem Compilerfehler führt:

int b;
for ( int a = 1, b = 5; a <= b; a++ ) { }

während

int b=5;
for ( int a = 1; a <= b; a++ ) { }

einwandfrei compiliert.

Tagged with:
Jul 19

Eine For-Schleife besteht ja grundsätzlich aus den folgenden Teilen:

for (<Initialisierung>;<Bedingung>;<Iteration>) { Schleifen-Inhalt }

Bitte in diesem Zusammenhang noch beachten, dass innerhalb von Schleifen deklarierte Variablen außerhalb nicht mehr erreichbar sind:

for (int a = 0; a < 10; i++){

int b =10;

}

System.out.println(a); // Compiler-Fehler
System.out.println(b); // Compiler-Fehler

Tagged with:
preload preload preload
http://www.wikio.de Blog Top Liste - by TopBlogs.de Blogverzeichnis - Blog Verzeichnis bloggerei.de Bloggeramt.de Software
Webbhotell Top Blogs