01. februar 2005 - 19:48
Der er
9 kommentarer
hvad betyder denne sætning ?
Hvad betyder denne sætning ? og hvad kaldes det når man bruger : og ? findes der andre sådanne operatorer ? bool b = ( true > false ? true : false );
Annonceindlæg fra Immeo
01. februar 2005 - 19:50
#1
x = a ? b : c; svarer til: if(a) x = b; else x = c;
01. februar 2005 - 19:52
#2
Det forklarer vist bedre end ord. Jeg kalder det normalt for ?: operatoren. Det er den eneste operator med 3 argumenter. Java og C# har den også.
01. februar 2005 - 19:56
#3
"Ternary operator" kaldes den også.
01. februar 2005 - 19:59
#4
Så må vi jo håbe at der ikke bliver opfundet flere operatorer med 3 argumenter ...
01. februar 2005 - 20:08
#5
C standarden kalder den for "Conditional operator". b bliver vist true i krismorts eksempel.
01. februar 2005 - 20:10
#6
Det hedder den også i JLS (Java Language Specification).
01. februar 2005 - 20:10
#7
Den semantiske forskel er at: x = a ? b : c; evaluerer til en expression og: if(a) x = b; else x = c; evaluerer til et statement. Så man kan f.eks. skrive: while(x = 1 ? 1 : 2) { break; } Men ikke: while(if(1) x = 1; else x = 2;) { break; } (Eller lign. halvfjollede konstruktioner)
01. februar 2005 - 20:21
#8
Det smarte er: FuncMedMangeParametre(x, y, p, n()->pop, y ? v : n); I stedet for: if(y) FuncMedMangeParametre(x, y, p, n()->pop, v); else FuncMedMangeParametre(x, y, p, n()->pop, n);
25. februar 2005 - 20:57
#9
krismort> Tid at få afsluttet her ?
Kurser inden for grundlæggende programmering