Matlab编程解疑!如何跳出for循环!
T_jiange=5;A=[randperm(23)];CT(2,1)=0;T_wait(1,1)=0;fori=2:23CT(2,i)=0;T_wait(1,i)=0;...
T_jiange=5;
A=[randperm(23)];
CT(2,1)=0;
T_wait(1,1)=0;
for i=2:23
CT(2,i)=0;
T_wait(1,i)=0;
for j=i-1:1
if A(1,i)>=A(1,j)
T_wait(1,i)=T_wait(1,j)+10-(i-j)*T_jiange;
if T_wait(1,i)<=0
T_wait(1,i)=0;
CT(2,i)=0;
else
CT(2,i)=1;
T_wait(1,i)=T_wait(1,j)+10-(i-j)*T_jiange;
end
break;
else
CT(2,i)=0;
end
end
end
T_wait,CT,A
程序如上,T_wait计算 结果与预想中的有些出入,主要问题是在执行
if T_wait(1,i)<=0
T_wait(1,i)=0;
CT(2,i)=0;
else
CT(2,i)=1;
T_wait(1,i)=T_wait(1,j)+10-(i-j)*T_jiange;
end
这个语句之后,程序是应该跳出 for j=i-1:1这个循环的,但是我的只是跳出了if循环,这个怎么实现,急求,跪谢! 展开
A=[randperm(23)];
CT(2,1)=0;
T_wait(1,1)=0;
for i=2:23
CT(2,i)=0;
T_wait(1,i)=0;
for j=i-1:1
if A(1,i)>=A(1,j)
T_wait(1,i)=T_wait(1,j)+10-(i-j)*T_jiange;
if T_wait(1,i)<=0
T_wait(1,i)=0;
CT(2,i)=0;
else
CT(2,i)=1;
T_wait(1,i)=T_wait(1,j)+10-(i-j)*T_jiange;
end
break;
else
CT(2,i)=0;
end
end
end
T_wait,CT,A
程序如上,T_wait计算 结果与预想中的有些出入,主要问题是在执行
if T_wait(1,i)<=0
T_wait(1,i)=0;
CT(2,i)=0;
else
CT(2,i)=1;
T_wait(1,i)=T_wait(1,j)+10-(i-j)*T_jiange;
end
这个语句之后,程序是应该跳出 for j=i-1:1这个循环的,但是我的只是跳出了if循环,这个怎么实现,急求,跪谢! 展开
4个回答
推荐于2016-02-04
展开全部
没看明白你的意思。【程序是应该跳出 for j=i-1:1这个循环的,但是我的只是跳出了if循环】,if根本就不是循环,当然也就谈不上跳出。
break的作用是结束for或while循环,对于嵌套的循环,break只会结束最靠近它的那一层。
从你的代码而言,有for i=2:23和for j=i-1:1两层循环,当满足条件A(1,i)>=A(1,j)时会执行break,也就相应地跳出内层的for j=i-1:1循环。不知道你到底要实现什么?
更多追问追答
追问
如果语句执行的是if A(1,i)>=A(1,j) 执行玩之后就让他直接跳出for j=i-1:1循环,这样可以吗,或者可以实现这种情况吗,就是在break那个地方添加一个语句什么的让他直接调到for j=i-1:1这一句执行
追答
【如果语句执行的是if A(1,i)>=A(1,j) 执行玩之后就让他直接跳出for j=i-1:1循环】,现在就是这样执行的。
【在break那个地方添加一个语句什么的让他直接调到for j=i-1:1这一句执行】,这个要求没太看明白——到底是跳出这个循环,还是继续这个循环?
展开全部
【程序是跳出 for j=i-1:1这个循环的,但是只是跳出了if循环】。
if根本就不是循环,当然也就谈不上跳出。
break的作用是结束for或while循环,对于嵌套的循环,break只会结束最靠近它的那一层。
if根本就不是循环,当然也就谈不上跳出。
break的作用是结束for或while循环,对于嵌套的循环,break只会结束最靠近它的那一层。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-14
展开全部
用break,跟C语言一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用break啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |