Scriptet under inneholder tre if-setninger. Hva er merkelig med disse?

oppgave_2.m
x = 2;
x == 3;
if true
 x = 4;
end
if x < 0
 y = 1;
elseif x < -1
 y = 2;
elseif x < -2
 y = 3;
else
 y = 4;
end
test = x >= 4;
if test == true
 z = 1;
elseif test == false
 z = 2;
end

Videoforklaring (9:02)

Svar

  1. Første if-setning er merkelig fordi uttrykket er konstant true. Antakeligvis skulle uttrykket på linjen over vært brukt som if-setning-uttrykk.
  2. Andre if-setning er merkelig fordi betingelsene som står etter begge elseif er dekket av betingelsen som står etter if. Siden den første betingelsen sjekkes først, vil koden etter elseif aldri kjøre. Antakeligvis skulle rekkefølgen på betingelsene vært reversert, slik at den strengeste kom først.
  3. Siste if-setning har en unødvendig sjekk på om en sannhetsverdi er true. Dette sjekkes uansett av Matlab. Betingelsen etter elseif dekker alle andre tilfeller, og elseif kunne vært byttet ut med else.
  • No labels