# If-Anweisung verkürzen



## DrBrokenbone (3. Feb 2015)

Hallo Community..
Ich habe ein kleines Problem und komme nicht weiter.
Ich habe ein kleines Programm geschrieben, welches mir die Zahlen von 0 - 9 in Worten wiedergibt (3 = drei).
Doch dafür brauchte ich 10 If Anweisungen, aber ich weiß, dass das auch irgendwie mit einer While gehen muss, doch ich komme einfach nicht auf die Lösung;(
Ich zeige euch mal einen kleinen Ausschnitt meines Codes zur Veranschaulichung:

```
..
if(zahl ==1){zText = eins}
if (zahl==2){zText = zwei} 
..
```

Danke schonmal im voraus.
Und ich Hoffe, dass ihr mir antwortet


----------



## javampir (3. Feb 2015)

hi,
mit while?? ich weiß ja nicht so. ich hätte das mit switch Case gemacht (außerdem müssen strings in "" stehen):

```
switch(zahl) {
    case 1: {
        zText = "eins";
    } break;
    case 2: {
        zText = "zwei";
    } break;
    ...
    default: {
        zText = "Keine Entsprechung";
    }
}
```

javampir


----------



## DrBrokenbone (3. Feb 2015)

Danke für die schnelle Antwort. Aber diese Methode ist doch eigentlich genauso lang wie die Andere oder nicht?
Und außerdem gebe ich die Zahl ja über die Konsole ein. Erkennt diese Variante dann auch welche Zahl ich eingebe, da ja nicht auf die Variabel Zahl zugegriffen wird.


----------



## Flown (3. Feb 2015)

Du könntest deine Strings in ein Array werfen und dann den Index dafür nutzen um das Wort zu erhalten:


```
public class Test {
  public static final String[] DIGITS = { "null", "eins", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun" };
  
  public static void main(String... args) {
    for (int i = 0; i < DIGITS.length; i++) {
      System.out.println(DIGITS[i]);
    }
  }
}
```


----------



## javampir (3. Feb 2015)

in zeile 2 wird sehr wohl auf zahl zugegriffen. un es ist in der tat etwas kürzer, vor allem aber viel hübscher vom aussehen her. ich kann mir nicht vorstellen, hier eine schleife zu verwenden.
eine möglichkeit, es kürzer zu machen, ist folgende: du lässt nur ganz bestimmte zahlen zu, speicherst die strings in ein array und greifst dann darauf zu:

```
String[] text = {"null", "eins", "zwei", "drei"};
if(zahl >= 0 && zahl < 4) {
    zText = text[zahl]
}
```
javampir

Edit: Manno, zu langsam


----------



## DrBrokenbone (3. Feb 2015)

Vielen Dank für die zwei sehr schnellen Antworten.. Ich dachte echt, dass ich das irgendwie mit einer While Schleife hinkriegen könnte


----------

