Java/String und Java/Schleife: Unterschied zwischen den Seiten

Aus ZUM-Unterrichten
< Java(Unterschied zwischen Seiten)
main>Karl Kirst
K (Weitere externe Links)
 
main>Ugh
(neu)
 
Zeile 1: Zeile 1:
{{Babel-1|Java}}
{{Babel-1|Java}}
Häufig benötigt man beim Programmieren eine mehrfache Ausführung eines Teilbereichs. <br>
Denkbar ist es, dass ein Programmierer dazu einfach Zeilen wiederholt.<br>
So lässt sich z.B. das kleine 1 x 1 von 3 wie folgt ausgeben:
<java>
System.out.println("3 x 1 = 3");
System.out.println("3 x 2 = 6");
System.out.println("3 x 3 = 9");
System.out.println("3 x 4 = 12");
System.out.println("3 x 5 = 15");
System.out.println("3 x 6 = 18");
System.out.println("3 x 7 = 21");
System.out.println("3 x 8 = 24");
System.out.println("3 x 9 = 27");
</java>


{{Zitat wpde|
Eleganter ist da schon die Verwendung der [[java/while-Schleife|while-Schleife]]
Eine '''Zeichenkette''' oder ein '''String''' (englisch) ist eine Folge von Zeichen (z.B. Buchstaben, Ziffern, Sonderzeichen, und Steuerzeichen) aus einem definierten Zeichensatz. Zeichen können sich in einer Zeichenkette wiederholen, die Reihenfolge der Zeichen ist definiert. Zeichenketten sind Symbolsequenzen endlicher Länge.
<java>
int faktor = 1;
while ( faktor <= 9 ) {
    System.out.println("3 x " + faktor + " = " + 3*faktor );
    faktor++;
}
</java>


Mit '''Zeichenkette''' wird in der Programmierung auch ein Datentyp bezeichnet, der Zeichenketten (Texte) fester oder variabler Länge enthalten kann. Fast jede Programmiersprache besitzt einen derartigen Datentyp.
Für genau diesen Fall gibt es aber auch eine Schleife: die for-Schleife. Sie ist immer dann sinnvoll einsetzbar, wenn
|Zeichenkette|09.12.2006}}
* Eine bestimmte Anzahl von Wiederholungen durchgeführt werden soll
* Eine Variable von einem bestimmten Wert bis zu einem anderen gezählt werden soll


Das folgende Beispiel macht genau das selbe wie die while-Schleife im obigen Beispiel


Technisch gesehen ist ein String in [[Java]] eine Aneinanderreihung von Einzelbuchstaben (vgl. Datentyp char – ein einzelner Buchstabe).
<java>
String ist eine Klasse, deshalb wird String auch im Gegensatz zu int oder double groß geschieben.
for ( int faktor = 1; faktor <= 9; faktor ++ ) {
Ein vereinfachtes Klassendiagramm von String könnte so aussehen:
      System.out.println("3 x " + faktor + " = " + 3*faktor );
String hat viele Methoden, von denen Sie jetzt 3 kennen lernen sollen. Die folgende Klasse bietet eine zugegeben sehr unsaubere Möglichkeit, die Methoden von String zu testen.
}
</java>


;Weitere Beispiele
<java>
<java>
// eine Klasse, die nur zu Testzwecken existiert!
//allgemeiner Aufbau
public class Stringtest
for ( Zählvariable mit Anfangswert; Anfangswert; Bedingung; Schrittweite) {
{
      // Anweisung, die wiederholt werden soll
        public Stringtest(String s){
}
            System.out.println(s);
 
            System.out.println(s.length());
// hochzählen in 1er-Schritten
            System.out.println(s.charAt(0));
for ( int zählvariable = Anfangswert; zählvariable <= Endwert; zählvariable++ ) {
            System.out.println(s.charAt(s.length()-1));
       // Anweisung, die wiederholt werden soll
            System.out.println(s.equals(“Hallo“));
        }        
}
}
</java>


;Erläuterung:
// hochzählen in 5er-Schritten
* ''s.length()'' ergibt die Anzahl der Zeichen von s.
for ( int zählvariable = Anfangswert; zählvariable <= Endwert; zählvariable+=5 ) {
* ''s.charAt(0)'' ergibt das erste Zeichen von String s. Position 0 entspricht dem ersten Zeichen.
      // Anweisung, die wiederholt werden soll
* ''s.charAt(1)'' würde das zweite Zeichen ergeben usw.
}
* ''s.charAt(s.length()-1)'' ergibt das letzte Zeichen von s.
* ''System.out.println(s.equals("Hallo"))'' gibt ein true aus, wenn s dem String „Hallo“ entspricht, ansonsten wird false ausgegeben. Auf diese Weise lassen sich 2 String Variablen oder Eigenschaften miteinander vergleichen


// Countdown
for ( int zählvariable = Anfangswert; zählvariable > Endwert; zählvariable-- ) {
      // Anweisung, die wiederholt werden soll
}
</java>


{{Übung|
{{Übung|
# Warum wird die -1 bei s.charAt(s.length()-1) verwendet?
* Nennen Sie Anwendungsgebiete der for-Schleife
# Welche Länge hat ein leerer String? Lässt sich der erste Buchstabe eines leeren Strings ausgeben?
* Lassen Sie die Zahlen von 1 bis 100 auf dem Bildschirm ausgeben
# Ein Wort mit 5 Buchstaben (z.B. „Hallo“), das von BlueJ als Parameter eingelesen wird,  soll rückwärts in der Konsole erscheinen. Verändern Sie die Methode Stringtest entspre­chend.
* Diesmal nur die geraden Zahlen
# Recherchieren Sie im Internet über die Möglichkeiten von Strings bei Java.
* Diesmal von 100 bis -100
#* Schauen Sie z.B. hier:
* Die ungeraden von 200 bis -1000
#* http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html (offizielle Java-Doku­mentation der Firma Sun)
* Lassen Sie 50 mal den Buchstaben "A" auf den Bildschirm schreiben
#* http://www.galileocomputing.de/openbook/javainsel4/javainsel_04_000.htm#Rxx365java04000040001241F021100  (Kostenlos im Internet verfügbares Java-Buch, was für den Unterricht viel zu weit  geht, das Sie sich aber anschauen sollten, falls Sie das Thema privat interessiert)
* Die Zahlen von -10 bis 10 ohne die 0
#* http://de.wikibooks.org/wiki/Programmierkurs_Java:_Strings Hintergrundinforma­tionen zu Strings als Wikibook.
}}
}}
==Siehe auch==
* [[Java]]
* [[Informatik]]
* [[Mathematik]]
==Weitere externe Links==
* ...


[[Kategorie:Java]]
[[Kategorie:Java]]
[[Kategorie:Informatik]]
[[Kategorie:Informatik]]

Version vom 11. Dezember 2006, 08:00 Uhr

Vorlage:Babel-1 Häufig benötigt man beim Programmieren eine mehrfache Ausführung eines Teilbereichs.
Denkbar ist es, dass ein Programmierer dazu einfach Zeilen wiederholt.
So lässt sich z.B. das kleine 1 x 1 von 3 wie folgt ausgeben: <java> System.out.println("3 x 1 = 3"); System.out.println("3 x 2 = 6"); System.out.println("3 x 3 = 9"); System.out.println("3 x 4 = 12"); System.out.println("3 x 5 = 15"); System.out.println("3 x 6 = 18"); System.out.println("3 x 7 = 21"); System.out.println("3 x 8 = 24"); System.out.println("3 x 9 = 27"); </java>

Eleganter ist da schon die Verwendung der while-Schleife <java> int faktor = 1; while ( faktor <= 9 ) {

   System.out.println("3 x " + faktor + " = " + 3*faktor );
   faktor++;

} </java>

Für genau diesen Fall gibt es aber auch eine Schleife: die for-Schleife. Sie ist immer dann sinnvoll einsetzbar, wenn

  • Eine bestimmte Anzahl von Wiederholungen durchgeführt werden soll
  • Eine Variable von einem bestimmten Wert bis zu einem anderen gezählt werden soll

Das folgende Beispiel macht genau das selbe wie die while-Schleife im obigen Beispiel

<java> for ( int faktor = 1; faktor <= 9; faktor ++ ) {

     System.out.println("3 x " + faktor + " = " + 3*faktor );

} </java>

Weitere Beispiele

<java> //allgemeiner Aufbau for ( Zählvariable mit Anfangswert; Anfangswert; Bedingung; Schrittweite) {

     // Anweisung, die wiederholt werden soll

}

// hochzählen in 1er-Schritten for ( int zählvariable = Anfangswert; zählvariable <= Endwert; zählvariable++ ) {

     // Anweisung, die wiederholt werden soll

}

// hochzählen in 5er-Schritten for ( int zählvariable = Anfangswert; zählvariable <= Endwert; zählvariable+=5 ) {

     // Anweisung, die wiederholt werden soll

}

// Countdown for ( int zählvariable = Anfangswert; zählvariable > Endwert; zählvariable-- ) {

     // Anweisung, die wiederholt werden soll

} </java>


Übung
  • Nennen Sie Anwendungsgebiete der for-Schleife
  • Lassen Sie die Zahlen von 1 bis 100 auf dem Bildschirm ausgeben
  • Diesmal nur die geraden Zahlen
  • Diesmal von 100 bis -100
  • Die ungeraden von 200 bis -1000
  • Lassen Sie 50 mal den Buchstaben "A" auf den Bildschirm schreiben
  • Die Zahlen von -10 bis 10 ohne die 0