Go Down

Topic: Was bedeutet ? : (Read 1 time) previous topic - next topic

volvodani

@jurs
ist das jetzt smartshitting  :P :D
So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

Realizer

Warum muss ich jetzt an die damaligen Zeiten denken, wo es Wettbewerbe für den C64 gab, indem man den wildesten Einzeiler schreiben sollte. :D

Manche Leute haben es hinbekommen, winzige Maschinencodes in eine Zeile zu quetschen, die dann sogar noch funktionsfähig und genial waren. Aber soetwas habe ich mit meinen bescheidenen Programmierkenntnissen nie hinbekommen:)
Eine Kuh macht muuhh.
Viele Kuehe machen Muehe

uwefed

Man möge großzügig sein und mir das unterschlagene "int" verzeien und mir keinem Strick daraus drehen.
Ok Danke. Jetzt fühle ich mich besser.


?: in der im Beispiel verwendeten Form
int on = bitRead(cmd, bit) ? 1056 : 395;
ist keine vollwertiger Ersatz von IF ELSE sondern eher eine bedingte Zuweisung von Werten einer Variablen.

?: wird verwendet, weil es kürzer ist und weniger zu schreiben ist. Wenn man es einmal verstanden hat, dann ist es gleich einfach zu verstehen wie ein IF-ELSE.

@Helmuth
Ich kann Dir keine Quelle nennen, noch fallen mir weitere solche Kniffe ein. Ich kann Dir nicht weiterhelfen.

Grüße Uwe

Helmuth

#8
Mar 05, 2013, 08:09 pm Last Edit: Mar 05, 2013, 08:16 pm by Helmuth Reason: 1
@Uwe: Ich glaube, mein Problem ist, dass ich manche Operatoren noch nicht sofort als solche erkenne bzw. mir die Erfahrung fehlt, zu verstehen / mir vorzustellen, was sie exakt bewirken, warum sie an dieser Stelle verwendet werden...

Hab´mich wieder beruhigt, ich arbeite dran.

Grüße  ;)

Udo Klein

Der Unterschied ist, daß "if" eine Anweisung und "?:" ein dreistelliger Operator ist. Das wird besonders auffällig wenn man Konstanten deklariert. Mit der "if" Anweisung kann man nicht sinnvoll Konstanten deklarieren mit "?:" schon. Der Operator ist außerdem gut lesbar wenn man das Idiom kapiert hat und vernünftig einrückt.

http://blog.blinkenlight.net/experiments/basic-effects/lighthouses/ liest sich mit "?" deutlich besser als mit "if".

Und hier ein Beispiel wo ich ausnutze, daß "?" zur Compilezeit ausgewertet werden kann:

http://blog.blinkenlight.net/experiments/removing-flicker/knight-rider-no-flicker/

Allerdings könnte man beim letztgenannten Beispiel auch geschickter Einrücken ;)
Check out my experiments http://blog.blinkenlight.net

Go Up