I'm trying to return an invalid message for any value not inside the parameters.
Given this for loop with an embedded while and if just to check the inputs value.
for i = 1:2
fprintf("iteration %d\n", i);
flag = 1;
while flag == 1
row = input(":");
if row ~= 1
fprintf("invalid input\n");
fprintf("while restarts\n");
flag = 1;
else
fprintf("valid input\n");
flag = 0;
end
end
fprintf("while ends\n");
end
fprintf("end\n");
Is there a way to implement a if row ~= 1:10 condition?
Alternativley is there a way to use switch cases?

1 comentario

Louis Grainger
Louis Grainger el 22 de Abr. de 2021
Obviously switch case can be used to display valid for 1:10 but it will break the code if any other input is entered.

Iniciar sesión para comentar.

 Respuesta aceptada

If you want to check if a number is not in a given set, use ismember.
x = 1:10;
if ismember(5, x)
disp("5 is in x")
else
disp("5 is not in x")
end
5 is in x
if ismember(pi, x)
disp("pi is in x")
else
disp("pi is not in x")
end
pi is not in x

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Preguntada:

el 22 de Abr. de 2021

Respondida:

el 22 de Abr. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by