matlab里面的for循环嵌套

如下语句实现输出1000以内的素数:fork=1:1000,forj=2:k-1,s=(mod(k,j)==0);ifsum(s)<=0disp(k):endendend... 如下语句实现输出1000以内的素数:
for k=1:1000,
for j=2:k-1,
s=(mod(k,j)==0);
if sum(s)<=0
disp(k):
end
end
end
每次输出的数据很奇怪,求大神解决
展开
 我来答
59分粑粑分享生活
高粉答主

2020-03-14 · 专注生活好物分享,解答日常方方面面的问题
59分粑粑分享生活
采纳数:326 获赞数:119831

向TA提问 私信TA
展开全部

这是matlab里面的for循环嵌套if的用法。举例说明具体的使用方法,详解如下:

1、首先,创建一个新的子程序loopcolor,如下图所示。

2、其次,完成上述步骤后,定义几个变量,所有变量都是整数类型,代码如下图红框所示。

3、接着,完成上述步骤后,为mycolor分配一个值,  mycolor = 0,如下图所示。

4、然后,完成上述步骤后,对myrow进行循环,如下图所示。

5、随后,完成上述步骤后,在myrow循环中嵌套另一个循环mycol,如下图所示。

6、接着,完成上述步骤后,再循环里面,选择单元格并用颜色进行填充,如下图所示。

7、最后,完成上述步骤后,运行该程序,可以看到填充的色块,如下图所示。这就是matlab里面的for循环嵌套if的使用方法。

四舍五不入6
高粉答主

2019-10-11 · 还没有填写任何签名哦
四舍五不入6
采纳数:27 获赞数:71370

向TA提问 私信TA
展开全部

函数思路:先对1到1000的数K进行循环,从2到K-1进行j循环,如果K能被j整除,那么S=1,并且跳出j这个循环(用break,j后面的循环不用做了),因为肯定不是素数了,如果不能整除那么S最后退出j循环的结果肯定是0,回到K循环,判断一下只要是S等于0,那就是素数,如下所示。

for k=1:1000

for j=2:k-1

s=(mod(k,j)==0);

if s==1

break;

end

end

if s==0

disp(k);

end

end

扩展资料:

for循环其他用法

1、for循环可以有多层嵌套。示例:

#include<stdio.h>

int main(void)

{

int i,j,k;

printf("ijk\n");

for(i=0;i<2;i++) 

for(j=0;j<2;j++) 

for(k=0;k<2;k++)

printf("%d%d%d\n",i,j,k);

return 0;

}

输出结果为: i j k 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

2、for循环中的变量生存周期为一次循环迭代。

#include<stdio.h>

int main(void)

{

int i;

for(i=0;i<9;i=i+1)

{

int a=i;

printf("%d\n",a);

}

return 0;

}

C语句中变量必须声明在前才能使用,在定义语句之前使用变量是不合法的。

参考资料来源:百度百科-for循环

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wacs5
推荐于2017-09-03 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3724
采纳率:82%
帮助的人:2810万
展开全部
for k=1:1000
for j=2:k-1
s=(mod(k,j)==0);
if s==1
break;
end
end
if s==0
disp(k);
end
end

按你的思路改的
(1)先对1到1000的数K进行循环
(2)从2到K-1进行j循环,如果K能被j整除,那么S=1,并且跳出j这个循环(用break,j后面的循环不用做了),因为它肯定不是素数了.如果不能整除那么S最后退出j循环的结果肯定是0.
(3)回到K循环,判断一下只要是S等于0,那就是素数.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
佬的啊我沙沟曾08
2014-10-09 · TA获得超过1045个赞
知道小有建树答主
回答量:305
采纳率:100%
帮助的人:322万
展开全部
使用continue

使用break 退出循环 可以使用break 语句直接强行退出循环,忽略循环体中任何其他语句和循环条件测试。在循环中遇到break语句时,循环被终止,程序控制在循环后面语句重新开始。例如 如果for 循环被设计为从 0执行到99,然后输出0到99这些数字,但是当i等于10时,break语句终止程序。所以程序只会输出0到10。在一系列嵌套循环中使用break 语句时,它将仅仅终止最里面循环。

而continue则停止执行当前的反复,然后退回循环起始和,开始新的反复。continue 用于跳过循环体中的一部分语句,也就是不执行这部分语句

return语句用来明确地从一个方法返回。也就是,return 语句使程序控制返回到调用它方法。因此,将它分类为跳转语句。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dukinkin
推荐于2017-09-03 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2444
采纳率:90%
帮助的人:933万
展开全部
for k=2:1000
j=2:k-1;
s=(mod(k,j)==0);
if sum(s)<=0
disp(k);
end
end
追问
给力
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式