Buchstabe so oft ausgeben wie Position im Alphabet

katchy

Aktives Mitglied
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:

Java:
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

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

Java:
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
   }

}
 
Zuletzt bearbeitet:

Joose

Top Contributor
Pseudocode
Code:
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

Aktives Mitglied
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

Top Contributor
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

Aktives Mitglied
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)
 

Neue Themen


Oben