# Alphabet rückwärts ausgeben



## butsch (27. Nov 2011)

Hey Leute, vielleicht kann mir hier jemand helfen.

Ich bemüh mich gerade ein Programm zu schreiben, welches das Alphabet in umgekehrter Reihenfolge ausgibt. Um den Umgang mit Schleifen zu lernen, will ich dabei am besten alle drei Schleifen (for, while, do..while) einsetzen.

Die Ausgabe soll dann am Bildschirm zyxwvutsrqponmlkjihgfedcba sein.

Also meine Idee war jetzt die 26 Buchstaben von chars in int zu deklarieren, sodass man dann für a=1 b=2 int werte zum vergleichen rausbekommt.

Es ist ja nun so, dass java dann die umgekehrte Reihenfolge ausgeben soll.
Mit den 3 Schleifen soll z.b. a mit b verglichen werden, und der größere Wert von rechts nach links verschoben werden. also hier dann b a. Wenn java durch Schleifen dann jeden Buchstaben verglichen hat, sthet zum Schluss ja zyx... (weil z ja den größten wert hat)

Keine Ahnung ob das so geht, aber mit den Schleifen kann man ja so die Werte immer vergleichen.

Soweit so gut, da ich aber ein wirklich absoluter neuling auf dem Gebiet bin und mein Wissen größtenteils aus der theoretischen Wissensvermittlung diverser Bücher hab, hab ich keine Ahnung wie man da jetzt vorgeht.

Wär cool wenn mir da jemand helfen könnte!

Ach ja, ich benutze Eclipse, bzw probiere es zumindest 


LG Butsch


----------



## Marcinek (27. Nov 2011)

Vieleicht vorher mal google befragen?

http://www.java-forum.org/hausaufgaben/92370-eingabe-umgedreht-ausgeben.html


----------



## XHelp (27. Nov 2011)

Wieso so kompliziert? Du musst es ja nur ausgeben...

```
for (char c='z';c>='a';c--) {
  System.out.print(c);
}
```


----------



## butsch (27. Nov 2011)

Marcinek hat gesagt.:


> Vieleicht vorher mal google befragen?
> 
> http://www.java-forum.org/hausaufgaben/92370-eingabe-umgedreht-ausgeben.html



Des hab ich schon durchgelesen, aber wirklich verstanden hab ich's leider nicht...


----------



## butsch (27. Nov 2011)

XHelp hat gesagt.:


> Wieso so kompliziert? Du musst es ja nur ausgeben...
> 
> ```
> for (char c='z';c>='a';c--) {
> ...



Ums zu lernen würd ich trotzdem gern wissen, wie ich jedem Buchstaben eine Zahl zuweise und dann diese Zahlen mithilfe von Schleifen zu vergleichen


----------



## faetzminator (27. Nov 2011)

Was willst du :bahnhof: ? Du kannst natürlich ein Array der ensprechenden Grösse deklarieren, und da jeweils ein Buchstabe zuordnen und danach über das Array iterieren. Aber was für einen Sinn macht das? Ok, du könntest noch die for-each Schleife kennenlernen, aber das wird wohl auch so klappen (ungetestet):

```
for (char c : new char[] {'z', 'y', 'x', ...}) {
    System.out.print(c);
}
```


----------



## butsch (27. Nov 2011)

faetzminator hat gesagt.:


> Was willst du :bahnhof: ?



Ich würde gerne jedem Buchstaben eine Zahl zuweisen und dann per schleife die zahlen miteinander vergleichen

Zum Beispiel a=1, b=2, c=3 usw
Und das Programm soll dann erkennen, dass 3>2>1 ist, damit dann am Ende cba rauskommt


----------



## TKausL (27. Nov 2011)

```
char[] buchstaben = new char[26];
int j = 0;
for(char i = 'a'; i <= 'z'; i++){
    buchstaben[j++] = i;
}
```

Da hast du dein Array...


----------



## bandy (27. Nov 2011)

butsch hat gesagt.:


> Ich würde gerne jedem Buchstaben eine Zahl zuweisen und dann per schleife die zahlen miteinander vergleichen
> 
> Zum Beispiel a=1, b=2, c=3 usw
> Und das Programm soll dann erkennen, dass 3>2>1 ist, damit dann am Ende cba rauskommt




Schreibe doch komplett was es in der Konsole anzeigen soll und wie, dann koennen wir dir schneller helfen. a=1 macht wenig Sinn, a ein Buchstabe und 1 eine Zahl, moechtest du die Buchstaben nummerieren, damit weisst wieviele es sind?


----------



## langhaar! (27. Nov 2011)

faetzminator hat gesagt.:


> Was willst du :bahnhof: ?



Der Te möchte anscheinend einen Sortieralgorithmus schreiben und als Eingabe die als Zahlen codierten Zeichen nehmen...

@ TE
Such mal nach Bubblesort.


----------



## butsch (27. Nov 2011)

bandy hat gesagt.:


> Schreibe doch komplett was es in der Konsole anzeigen soll und wie, dann koennen wir dir schneller helfen. a=1 macht wenig Sinn, a ein Buchstabe und 1 eine Zahl, moechtest du die Buchstaben nummerieren, damit weisst wieviele es sind?





bandy hat gesagt.:


> Schreibe doch komplett was es in der Konsole anzeigen soll und wie, dann koennen wir dir schneller helfen. a=1 macht wenig Sinn, a ein Buchstabe und 1 eine Zahl, moechtest du die Buchstaben nummerieren, damit weisst wieviele es sind?



Naja ich will ja, dass danach das Alphabet rückwärts dasteht und, selbst wenn das einigen umständlich erscheint, will ich das mit einer Schleife machen. Und da sich Buchstaben nicht vergleichen lassen, dachte ich mir ich weise jedem Buchstaben eine Zahl von 1-26 zu, damit das Programm dann die zahlen nach größe vergleicht und die größte Zahl, also z (da ich ja gesagt hab z=26 und im Alphabet die höchste Zahl) an den anfang schreibt und die kleinste Zahl, also a an das Ende

Das waren nur meine Überlegungen wie ich das mit ner Schleife hinkrieg, vll denk ich auch viel zu kompliziert 


Lange Rede, kurzer Sinn: es soll am Ende 
zyxwvutsrqponmlkjihgfedcba 
Dastehen und ich will's mit einer Schleife erreichen


----------



## TKausL (27. Nov 2011)

TKausL hat gesagt.:


> ```
> char[] buchstaben = new char[26];
> int j = 0;
> for(char i = 'a'; i <= 'z'; i++){
> ...



Ah tut mir leid, ist nicht 1-26 sondern 0-25.....


```
for(int i = 25; i >= 0; i--){
    System.out.println(buchstaben[i]);
}
```

Und damit kannst du es dann ausgeben...

PS: Gewöhn dich bitte dran, dass in sämtlichen (mir bekannten) Programmiersprachen Arrays Null-Basiert sind, also mit 0 und nicht mit 1 anfangen.


----------



## butsch (27. Nov 2011)

TKausL hat gesagt.:


> Ah tut mir leid, ist nicht 1-26 sondern 0-25.....
> 
> 
> ```
> ...





Super :applaus: vielen dank!

und wie kann ich das mit der while und der do....while schleife machen?


----------



## TKausL (27. Nov 2011)

```
for(int i = 25; i >= 0; i--){
    System.out.println(buchstaben[i]);
}
```


```
int i = 25;
while(i >= 0){
    System.out.println(buchstaben[i]);
 i--;
}
```



```
int i = 25;
do{
    System.out.println(buchstaben[i]);
 i--;
}while(i >= 0);
```


----------



## butsch (27. Nov 2011)

TKausL hat gesagt.:


> ```
> for(int i = 25; i >= 0; i--){
> System.out.println(buchstaben[i]);
> }
> ...





danke, jetzt hab ich das auch verstanden!


----------



## BlackTiger95 (29. Nov 2011)

[Java]

int a=(int)'a';
int z=(int)'z';

for(int i=z;i>=a;i--){

System.out.println((char)i);

}

//ist nur Beispielcode keine Garantie das es Funktioniert

[/Java]


----------

