# I want to restart the loop from starting when a specific condition is met.

1 view (last 30 days)
Sanyam Maheshwari on 27 May 2020
Commented: Geoff Hayes on 27 May 2020
a = table2array(BRTSTestData);
c = 20;
f = 1;
s = 0;
for i = 1:5
for j = 1:6
s = s + a(i,j);
end
if s > 20
f = f+1;
a = a/f;
break
end
for k = 1:5
s = s - a(k,i);
end Now here I want to restart the first for loop from i = 1 when s > 20 and operate f = f+1. If I use break statement it terminates the loop and starts from next condition.

Geoff Hayes on 27 May 2020
Sanyam - perhaps use a while loop instead.
a = table2array(BRTSTestData);
c = 20;
f = 1;
s = 0;
i = 1;
while i <= 5
for j = 1:6
s = s + a(i,j);
end
if s > 20
f = f+1;
a = a/f;
i = 1; % <--- reset i to one
break;
end
for k = 1:5
s = s - a(k,i);
end
i = i + 1; % <--- increment i
end

Sanyam Maheshwari on 27 May 2020
while using break statement it gives control to the statement that follows the end of the loop. But I want to restart the following loop once again. please guide.
a = table2array(BRTSTestData);
c = 20;
f = 1;
s = 0;
i = 1;
j = 1;
while i <=5
while j <= 5
s = s + a(i,j);
if s > 20
a = a*f;
f = f+1;
a = a/f;
j = 1;
break
end
j = j+1;
end
for k = 1:5
s = s - a(k,i);
end
i = i + 1;
end
Geoff Hayes on 27 May 2020
I think in the code that I posted, the break should have been a continue
a = table2array(BRTSTestData);
c = 20;
f = 1;
s = 0;
i = 1;
while i <= 5
for j = 1:6
s = s + a(i,j);
end
if s > 20
f = f+1;
a = a/f;
i = 1; % <--- reset i to one
continue; % <--- end the current iteration and continue with the next
end
for k = 1:5
s = s - a(k,i);
end
i = i + 1; % <--- increment i
end
Perhaps that is all that you need to do too in the new code that you have posted - change the break to continue.

R2018a

### Community Treasure Hunt

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

Start Hunting!