If-Anweisung verkürzen

DrBrokenbone

Mitglied
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:
Java:
..
if(zahl ==1){zText = eins}
if (zahl==2){zText = zwei} 
..

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

javampir

Bekanntes Mitglied
hi,
mit while?? ich weiß ja nicht so. ich hätte das mit switch Case gemacht (außerdem müssen strings in "" stehen):
Java:
switch(zahl) {
    case 1: {
        zText = "eins";
    } break;
    case 2: {
        zText = "zwei";
    } break;
    ...
    default: {
        zText = "Keine Entsprechung";
    }
}

javampir
 

DrBrokenbone

Mitglied
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

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

Java:
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]);
    }
  }
}
 
Zuletzt bearbeitet:

javampir

Bekanntes Mitglied
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:
Java:
String[] text = {"null", "eins", "zwei", "drei"};
if(zahl >= 0 && zahl < 4) {
    zText = text[zahl]
}
javampir

Edit: Manno, zu langsam ;)
 
Zuletzt bearbeitet:

Neue Themen


Oben