Wie am elegantesten Ausrechnen?
-
Vielen Dank! Das ich da nicht selber drauf gekommen bin
function getColourByYear( $Year ) { $Farben = array( "Gelb", "Rot", "Grün", "Blau", "Weiß" ); return $Farben[($Year + 3) % 5]; }
Ich denke den Code kann ich so stehlen lassen? Oder sollte ich noch was ändern?
Viele Grüße
BlubBlubBlub
-
a) Variablennamen klein hat sich eingebürgert
b) Ordne die Farben anders an, dann kannst du dir das +3 sparen?!
c) Ich hoffe PHP legt das Array nicht bei jedem Funktionsaufruf neu an sondern macht daraus autom. das was in C++ als static bekannt istMfG SideWinder
-
Korrektur
( feste Referenz )
int main() { char* f[5] = {"gelb", "rot", "gruen", "blau", "weiss" }; int referenz = 1597; int jahr = 2016; printf("%s\n", f[abs( referenz - jahr )%5] ); return 0; }
-
proggingmania schrieb:
Kuckuck !
Du brauchst erstmal einen Nullpunkt bzw. eine Referenz, z.B. das Jahr
2007.den hat er ja...btw deine indices sind um 1 daneben
ich dachte, dass er evtl. den richtigen index braucht. wenn es nur darum geht den richtigen string zu wählen, dann ist zutitzzs variante besser.
-
dot schrieb:
den hat er ja...btw deine indices sind um 1 daneben
Wieso ? 5 Farben, Index 0 bis 4.
dot schrieb:
ich dachte, dass er evtl. den richtigen index braucht.
Ja, für den Index kann man auch statt char* f
int index nehmen oder so.dot schrieb:
wenn es nur darum geht den richtigen string zu wählen, dann ist zutitzzs variante besser.
Wieso, weils C++ ist und nicht C ?
-
Axoh, die abs Funktion kann ja jetzt auch rausfliegen.
-
SideWinder schrieb:
a) Variablennamen klein hat sich eingebürgert
b) Ordne die Farben anders an, dann kannst du dir das +3 sparen?!
c) Ich hoffe PHP legt das Array nicht bei jedem Funktionsaufruf neu an sondern macht daraus autom. das was in C++ als static bekannt istMfG SideWinder
Hi, das mit der Variable Farben macht mir auch sorgen, aber ich weiß nicht wie ichs ohne lösen soll...
function getColourForYear( $year ) { return ( array( "Gelb","Rot","Grün","Blau","Weiß" )[($year + 3) % 5] ); }
Das kann PHP scheinbar nicht... Wie könnte man das mit dem Array noch sinnvoller lösen?
Danke
-
BlubBlubBlub schrieb:
Ich denke den Code kann ich so stehlen lassen?
Du kannst beruhigt sein, den Code stiehlt dir keiner.
MfG, der Beruhiger.
-
proggingmania schrieb:
dot schrieb:
den hat er ja...btw deine indices sind um 1 daneben
Wieso ? 5 Farben, Index 0 bis 4.
rechne mal nach. bei dir wäre 2007 "weiss"
proggingmania schrieb:
Ja, für den Index kann man auch statt char* f
int index nehmen oder so.oO warum sollte man für einen index char* verwenden !?
proggingmania schrieb:
Wieso, weils C++ ist und nicht C ?
nein. weil er sich die addition spart, was aber nur funktioniert, solange man eben nur den richtigen string auswählen will.
-
Zu 1.) Nööö
Zu 2.) Nööö
Zu 3.) NöööEdit: Zu 3.) Nööö