Filter löschen
Filter löschen

Skipping elseif when first condition is true

10 Ansichten (letzte 30 Tage)
g
g am 21 Jan. 2019
Beantwortet: Steven Lord am 21 Jan. 2019
I currently have the following scheme:
if (a =0)
q = 4
elseif (b=0)
q = 5
rest of code
end
The problem is, in the case a =0 the program does not work properly, as it simply skips the "rest of code".
I have tried moving the "end" before rest of code, but that does not work for the purposes of this.
Is there a way such that in the case a =0, it sets q=4, then just doesn't consider the elseif (b=0) case and continues onto the rest of the code?
Thanks!
  1 Kommentar
Stephen23
Stephen23 am 21 Jan. 2019
Bearbeitet: Stephen23 am 21 Jan. 2019
"The problem is, in the case a =0 the program does not work properly"
Read the MATLAB documentation to learn what operator to use for logical equivalence:
And for other logical operators:
Guessing is not a very efficient way to write code.

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Image Analyst
Image Analyst am 21 Jan. 2019
That's not how you check if a equals zero. You need to use double equals. A single equals is assignment, NOT comparison. Try this:
if (a == 0)
q = 4
elseif (b == 0)
q = 5
rest of code
end

Steven Lord
Steven Lord am 21 Jan. 2019
If you want to execute the rest of the code regardless of whether a was equal to 0 or b was equal to 0, take it out of the if / elseif / end block entirely.
if (a ==0)
q = 4
elseif (b==0)
q = 5
end
rest of code
If you need to throw an error if neither a nor b was 0, use else and throw an error inside the else.
if (a ==0)
q = 4
elseif (b==0)
q = 5
else
error('Expected either a or b to be 0')
end
rest of code

Kategorien

Mehr zu Search Path finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by