bypass an "if" within another using a flag

5 Ansichten (letzte 30 Tage)
Mehrdad Bahadori
Mehrdad Bahadori am 8 Apr. 2023
Bearbeitet: Image Analyst am 8 Apr. 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!

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 8 Apr. 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 Kommentare
Mehrdad Bahadori
Mehrdad Bahadori am 8 Apr. 2023
the second possibility is exactly what I was saying. thanks!
Image Analyst
Image Analyst am 8 Apr. 2023
Bearbeitet: Image Analyst am 8 Apr. 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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Image Analyst
Image Analyst am 8 Apr. 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 Kommentar
Mehrdad Bahadori
Mehrdad Bahadori am 8 Apr. 2023
Bearbeitet: Walter Roberson am 8 Apr. 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?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu App Building 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