Filter löschen
Filter löschen

Info

Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.

The case of the odd case statement

2 Ansichten (letzte 30 Tage)
Steve D
Steve D am 17 Aug. 2011
Geschlossen: MATLAB Answer Bot am 20 Aug. 2021
So I entered the following code and tried it with the dispaly(r) either commented out or not. Its just trying to try all case statement cases
Both ways seemed to behave wrong. See for yourself.
daylight = 1; while daylight whatever=1; while whatever r = fix(2.99 *rand) + 1; % n=1..3 %display(r); switch r case r==1 if whatever display('case 1'); end case r==2 if whatever display('case 2'); end otherwise display('otherwise'); whatever=0; end end end
% GO Figure! What am I doing wrong?
  1 Kommentar
Jan
Jan am 17 Aug. 2011
Please format your code, see: http://www.mathworks.com/matlabcentral/answers/13205-tutorial-how-to-format-your-question-with-markup

Antworten (2)

Jan
Jan am 17 Aug. 2011
This problem appears frequently in the last weeks.
"case r==2" does not trigger for r==2, but it is equivalent to "case 1" if r==2 and "case 0" otherwise. As you can see in the documentation of switch, the correct syntax is:
switch r
case 1
...
case 2
...
otherwise
...
end
  1 Kommentar
Steve D
Steve D am 18 Aug. 2011
Thanks Jan, that got it. sd

Steve D
Steve D am 18 Aug. 2011
%sorry for the missing indents before. daylight = 1; while daylight whatever=1; while whatever r = fix(2.99 *rand) + 1; % n=1..3 %display(r); switch r case r==1 if whatever display('case 1'); end case r==2 if whatever display('case 2'); end otherwise display('otherwise'); whatever=0; end end end
  1 Kommentar
Jan
Jan am 18 Aug. 2011
A repeation does not necessarily mean an improvement ;-)
You could edit the original question and delete this answer.

Diese Frage ist geschlossen.

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by