# Buchstabe so oft ausgeben wie Position im Alphabet



## katchy (17. Nov 2015)

Hallo liebe Leute
ich bin totale Java Anfängerin 
ich habe jetzt folgende Aufgabe bekommen:
Schreiben Sie ein Java-Programm, das zunächst die Eingabe eines char-Wertes
zeichen über die Tastatur erwartet. Das Programm soll anschließend die Eingabe
überprüfen und, falls es sich um einen Buchstaben handelt, den Buchstaben so oft
auf den Bildschirm ausgeben, wie es seiner Position im Alphabet entspricht.
Realisieren Sie das Programm viermal, und zwar einmal mit Hilfe einer for-Schleife,
einmal mit Hilfe einer while-Schleife, einmal mit Hilfe einer do-Schleife und einmal mit
Hilfe einer Endlos-Schleife (while (true)) und der break-Anweisung.

Mein Code sieht bislang so aus:


```
package example;

public class Aufgabe10 {
   public static void main (String[] args) {
     char zeichen=IO.readChar("Bitte gebe ein Zeichen ein: ");
     if ('a' <= zeichen && zeichen <= 'z') {
       int pos = zeichen - 'a' + 1;
       System.out.println(pos + "te Buchstabe");
     } else if ('A' <= zeichen && zeichen <= 'Z') {
       int pos = zeichen - 'A' + 1;
       System.out.println(pos + "te Buchstabe");
      
     }
   }

}
```
Das Programm funktioniert so zwar aber das Problem ist ich bekomme das nicht mit einer For-Schleife, While-Schleife oder Do-Anweisung hin
Zweites Problem ist das Programm gibt mir nur die Position des Buchstabens an aber nicht so oft wie die Position ist.
also e 5te Buchstabe, eig soll es aber so sein: eeeee

Bitte bitte könnt ihr mir irgendwie weiterhelfen ich steh ein wenig auf dem Schlauch, wahrscheinlich ist die Lösung garnicht mehr so weit entfernt

Liebe Grüßchen
Katchy


----------



## JStein52 (17. Nov 2015)

Jetzt baust du einfach noch eine Schleife ein, z.B. die for-Schleife:


```
package example;

public class Aufgabe10 {
   public static void main (String[] args) {
     char zeichen=IO.readChar("Bitte gebe ein Zeichen ein: ");
     int pos=0;
     if ('a' <= zeichen && zeichen <= 'z') {
       pos = zeichen - 'a' + 1;
       System.out.println(pos + "te Buchstabe ");
     } else if ('A' <= zeichen && zeichen <= 'Z') {
       pos = zeichen - 'A' + 1;
       System.out.println(pos + "te Buchstabe ");

     }
     for (int i=0; i<pos; i++) {
         System.out.print(zeichen);
     }
     System.out.println();   // eine neue Zeile
   }

}
```


----------



## Joose (17. Nov 2015)

Pseudocode

```
int pos = buchstaben einlesen und position im Alphabet definieren
for( i = 0; i < pos; i++) {
   ....... // buchstabe ausgeben
}
```

Versuche zuerst mal die einfache Variante mittels for-Schleife zu realisieren.
Und wandle dann deine Schleife einfach in eine while bzw. do-while Schleife um.
(Jede Art Schleife kann in jede andere umgewandelt werden)

Und bezüglich der Endlosschleife "while(true)" -> auch wenn es eine Aufgabe ist, eine while-Schleife ohne echte Abbruchbedingung ist dringend zu vermeiden!
Finde sowas sollte gar nicht geleehrt werden


----------



## katchy (17. Nov 2015)

oh supi danke 

jetzt ist nur noch das Problem, dass er mir nur die Position des Buchstaben angibt aber nicht den Buchstaben so oft wie die Position
Beispiel:
e 
= eeeee


----------



## Joose (17. Nov 2015)

JStein52 und ich habe dir doch schon die gezeigt wie du das umsetzen kannst (mittels for-Schleife). Den Code musst du doch nur auf deinen übertragen


----------



## katchy (17. Nov 2015)

da zeigt er mir dann aber eine Fehlermeldung an :/ er erkennt pos nicht...

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
   pos cannot be resolved to a variable

   at example.Aufgabe10.main(Aufgabe10.java:14)


----------



## katchy (17. Nov 2015)

jetzt funktioniert es  danke schön


----------



## JStein52 (17. Nov 2015)

Ja, deshalb habe ich die Deklaration von pos for die if-Abfragen gestellt !!

edit: ok, überkreuzt


----------

