Wie kann man in Java ein if statement in die loop reinschreiben?
In etwa so,
falls days%7== 0 ist, dann geht die loop zum Beispiel nur bis 1
falls days%7== 1 ist, dann geht die loop zum Beispiel nur bis 2
Ist das irgendwie im Statement oben definierbar, konnte mich errinern, dass man irgendwas mit einem "?" machen konnte bin mir aber nicht mehr sicher.
3 Antworten
for (int i = 0; i < (days%7 == 0? 1: 2); i++)
Wäre dann deine Schleife.
Wenn days%7 == 0 - dann gilt i<1, ansonsten i < 2. Das kannst du auch weiter verketten, indem du im else Teil (2) nochmals in Klammern so eine Abfrage einbaust. Die Syntax zum Tenery Operator lautet;
(Ist die Bedinungung wahr)?Wahr:Falsch
true?true:false > Ergebnis true.
Allerdings ist es wesentlich eleganter, wenn du das einfach vorher festlegst, anstelle im If Teil. Dann wird das nämlich unübersichtlich.
int limiter = 0;
if (days % 7 == 0)
limiter = 1;
else if (days % 7 == 1)
limiter = 2;
for (int i = 0; i < limiter; i++)
// Foo
Probier das mal:
days%7 == 0 ? days / 7 : HIER MUSS NOCH HIN, WAS IM ELSE KOMMT
int limit = days%7 + 1
for (int i=0; i <= limit; i++) {
...
}
So?