bypass an "if" within another using a flag

5 visualizaciones (últimos 30 días)
Mehrdad Bahadori
Mehrdad Bahadori el 8 de Abr. de 2023
Editada: Image Analyst el 8 de Abr. de 2023
Hi everyone,
I have the code below:
a=5; b=4; c=3; d=2;
if a>b
if b>c % ====> this
if c>d
disp('i''m in!')
end
end % ======> this
end
Is it possible I bypass the " if b>c" using a flag?
e.g. FLAG=1, include this if, and FLAG=0, bypass this if.
Thanks!

Respuesta aceptada

Walter Roberson
Walter Roberson el 8 de Abr. de 2023
You might mean either of two different things:
First possibility:
a=5; b=4; c=3; d=2;
if a>b
if FLAG == 1 && b>c
if c>d
disp('i''m in!')
end
end % ======> this
end
In the above case, if b>c is only tested if FLAG is 1 -- but c>d is not tested if FLAG is not 1.
Second possibility:
a=5; b=4; c=3; d=2;
if a>b
if FLAG ~= 1 || b>c
if c>d
disp('i''m in!')
end
end % ======> this
end
In this case, the b>c test is only done if FLAG == 1, and if FLAG is not 1, then you go on to c>d anyhow.
  2 comentarios
Mehrdad Bahadori
Mehrdad Bahadori el 8 de Abr. de 2023
the second possibility is exactly what I was saying. thanks!
Image Analyst
Image Analyst el 8 de Abr. de 2023
Editada: Image Analyst el 8 de Abr. de 2023
Unless you've left out a lot of code (especially after the b>c block, there is no reason to even enter the a>b block. You could simply do
if a>b && FLAG
if b>c
if c>d
disp('i''m in!')
end
end % ======> No more code after this block
end
Of course the b>c and c>d could even be combined into a single test sine the c>d is the only thing in the block (again, assuming you have not left out additional code):
if a>b && FLAG
if b>c && c>d
disp('i''m in!')
end % ======> No more code after this block
end

Iniciar sesión para comentar.

Más respuestas (1)

Image Analyst
Image Analyst el 8 de Abr. de 2023
Since the b>c test occurs only inside the a>b block, and it's the only thing in the a>b block, you could simply do
if a>b && b>c
if c>d
disp('i''m in!')
end
end
  1 comentario
Mehrdad Bahadori
Mehrdad Bahadori el 8 de Abr. de 2023
Editada: Walter Roberson el 8 de Abr. de 2023
thanks for your response.
In the way you are saying, if b>c, it goes to next loop and shows the disp message. What I want is, to bypass the b>c, and go to the next if, and the go to disp.
with a flag , I want to change the code that I posted to the one below functionally:
(e.g. if FLAG==1)
a=5; b=4; c=3; d=2;
if a>b
% if b>c
if c>d
disp('i''m in!')
end
% end
end
Is it possible to do so?

Iniciar sesión para comentar.

Categorías

Más información sobre App Building en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by