matlab里面的for循环嵌套
for k=1:1000,
for j=2:k-1,
s=(mod(k,j)==0);
if sum(s)<=0
disp(k):
end
end
end
每次输出的数据很奇怪,求大神解决 展开
这是matlab里面的for循环嵌套if的用法。举例说明具体的使用方法,详解如下:
1、首先,创建一个新的子程序loopcolor,如下图所示。
2、其次,完成上述步骤后,定义几个变量,所有变量都是整数类型,代码如下图红框所示。
3、接着,完成上述步骤后,为mycolor分配一个值, mycolor = 0,如下图所示。
4、然后,完成上述步骤后,对myrow进行循环,如下图所示。
5、随后,完成上述步骤后,在myrow循环中嵌套另一个循环mycol,如下图所示。
6、接着,完成上述步骤后,再循环里面,选择单元格并用颜色进行填充,如下图所示。
7、最后,完成上述步骤后,运行该程序,可以看到填充的色块,如下图所示。这就是matlab里面的for循环嵌套if的使用方法。
函数思路:先对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循环
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,那就是素数.
使用break 退出循环 可以使用break 语句直接强行退出循环,忽略循环体中任何其他语句和循环条件测试。在循环中遇到break语句时,循环被终止,程序控制在循环后面语句重新开始。例如 如果for 循环被设计为从 0执行到99,然后输出0到99这些数字,但是当i等于10时,break语句终止程序。所以程序只会输出0到10。在一系列嵌套循环中使用break 语句时,它将仅仅终止最里面循环。
而continue则停止执行当前的反复,然后退回循环起始和,开始新的反复。continue 用于跳过循环体中的一部分语句,也就是不执行这部分语句
return语句用来明确地从一个方法返回。也就是,return 语句使程序控制返回到调用它方法。因此,将它分类为跳转语句。
j=2:k-1;
s=(mod(k,j)==0);
if sum(s)<=0
disp(k);
end
end
给力