Citat:
Ursprungligen postat av Snuggles88
Lite offtopic kanske, men jag tycker den ternära opperatorn är mer användbar i C där allt som inte är 1 räknas som false. Då kan man använda den när man t.ex. vill sätta en variabel till en annan variabel men inte är säker på om den andra variabeln är satt.
T.ex. såhär:
Kod:
int j;
int i = j ? j : -1;
Finns det något liknande enkelt sätt att göra samma sak i java?
Det där är inte alls bra, och kommer att ställa till en helvetes massa problem.
För det första så gäller att allt som inte är 0 är true, och 0 är false i C.
För det andra så kan du inte veta vad j kommer att vara i ditt exempel. Det beror på kompilator och om var variablen allokeras. Det aldra värsta är att värdet på j kan ändras mellan olika körningar och därigenom skapa oförutsägbara fel.
I java initialiseras alla variabler till ett förutbestämt värde om inget annat anges (0, false eller null). Alltså vet du alltid att variablen har blivit satt till någonting, och behöver inte kolla det runtime.