please help me with this break

1 view (last 30 days)
hi,i wrote this code:
syms f te t1 p2 t2 t3 p3 p4 t4 t5 f1 t6
for f= 0.035:0.001:0.06
for te= 1800:1:2500
t1=(1-f)*300+f*(1-((1-50)/100)*((1.3-1)/1.3))*te
p2=50*(10)^1.3
t2=t1*10^0.3
t3=t2+2500*(1-f)/0.775
p3=p2*(t3/t2)
p4=p3*(1/10)^1.3
t4=t3*(1/10)^0.3
t5=t4*((p4/100)^(0.3/1.3))
f1=((100/p4)^(1/1.3))/10
t6=(1-f1)*300+f1*(1-((1-50)/100)*((1.3-1)/1.3))*t5
if ((abs((t6-t1)/t1)*100)<3) && ((abs((f-f1)/f)*100)<3) && ((abs((te-t5)/te)*100)<3)
table(t1,t6,f,f1,te,t5)
break
end
end
end
i want it to stop at certain point so i used Break but it continued and didin't break.
why?
  1 Comment
Image Analyst
Image Analyst on 3 Dec 2020
Please highlight your code in MATLAB and type control-a (to select all) then control-i (to properly indent it). Then paste it back here and highlight it and click the "Code" icon on the tool ribbon. this will ensure your code doesn't look like a total mess to us and will make it easy for us to copy into the clipboard. Also be sure to see Start Strider's Answer below.

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 3 Dec 2020
You have two nested loops. The break command will only break out of the inner loop, the one it is called in.
A simple example —
for k1 = 1:6
for k2 = 1:4
k_2 = k2;
fprintf('\t\tk_2 = %d\n', k_2)
if k2 > 2
break
end
end
fprintf('k1 = %d\tk2 = %d\n', k1, k_2)
end
.
  4 Comments
arsalan mehrabi
arsalan mehrabi on 6 Dec 2020
thanks, it worked when i used return.
Star Strider
Star Strider on 6 Dec 2020
As always, my pleasure!

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!