Switch Loop with Boolean expressions? Can it be done?

So I am trying to get a switch loop to display values of x=rand(1,10) when the values are greater than and smaller than 0.6?
Been trying with this however it keeps either telling me that my x value needs to be a scalar or character variable or just the regular unexpected error message.
switch (x)=true
case (x>0.6)
disp 'Large value in x found'
otherwise (x<0.6)
disp 'Small value in x found'
end
I know something else would be probably more pragmatic here but it's homwork so I do not make the rules...
Thanks in advance!

Réponses (1)

switch true
with no variable..
Also the otherwise should not have a condition

3 commentaires

Mau Dudas
Mau Dudas le 28 Oct 2019
Modifié(e) : Walter Roberson le 28 Oct 2019
So it would be
switch true
case (x>0.6) disp ' large value found in x'
otherwise disp ' small value foubd in x'
end
Is that right?
Thanks for the help!
Yes.
I do not recommand this use of switch() but it is legal. It would almost always be clearer to use if/elseif trees instead of switch true
As Walter said, yes you can do this.
As Walter also recommended, you shouldn't do it. The majority of readers (particularly people familiar with C-like languages) would expect a constant in the case expression and a non-constant expression for the switch. You're going to confuse a lot of people if you use that syntax.
If you do use it despite our recommendation, then a comment in the code explaining in details why it is used (as opposed to the simpler and clearer if...else) would be extremely recommended.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Produits

Question posée :

le 27 Oct 2019

Commenté :

le 28 Oct 2019

Community Treasure Hunt

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

Start Hunting!

Translated by