Einzelnen Beitrag anzeigen

Dax
(Gast)

n/a Beiträge
 
#16

Re: else ifs werden übersprungen

  Alt 11. Sep 2007, 23:14
Zitat von xZise:
Und was bringt mir ein solcher Vergleich? (Auch an Dax)
Durch die Umwandlung der verschiedenen Versionszahlen in einen Integer erreichst du genau das, was du willst: ein Vergleich VerA > VerB ergibt nur dann true wenn [u]mindestens eine[b] Versionszahl von VerB größer ist als die entsprechende Versionszahl aus VerA. Das ist einfache Arithmetik Der Grund dafür ist simpel: du hast vier Zahlen A, B, C und D, die man als Werte der ersten, zweiten, ... Position eines Stellenwertsystems S1 ansehen kann. Durch die von uns vorgeschlagene Umwandlung der vier Zahlen in eine einzige transferierst du diese Zahlen A, B, C, D in ein anderes Stellenwertsystem S2, dass diesmal pro Stelle *mehr* Informationen enthalten kann. Da S1 und S2 wohlgeordnet sind, gelingt dieser Vergleich immer.

Oder anders gesagt: weil 10A + B > 10C + D das selbe ist wie (A > B and C >= D) or (A >= B and C > D) - was sich auf beliebig viele Stellen erweitern lässt

Edit: unter der Vorraussetzung, dass A, B, C, D die eigenen Versionszahlen sind und E, F, G, H die auf dem Server, könnte dein Vergleich auch einfach not (A <= E and B <= F and C <= G and D <= H) sein.
  Mit Zitat antworten Zitat