黑马程序员技术交流社区
标题:
哪位大神看看这个程序哪里错了
[打印本页]
作者:
冯景超
时间:
2015-11-26 23:24
标题:
哪位大神看看这个程序哪里错了
package com.heima.bean;
class Demo1
{
public static void main(String[] args)
{
demo();
}
public static void demo() {
int num=0;
for(int i = 2;i <= 100;i ++)
{
for(int j = 2;j <= i;j ++){
if(i%j!=0){
break;
}
}
num++;
System.out.println(i);
}
System.out.println(num);
}
}
作者:
小地瓜
时间:
2015-11-26 23:35
你想求什么?
作者:
冯景超
时间:
2015-11-26 23:37
小地瓜 发表于 2015-11-26 23:35
你想求什么?
1-100的素数
作者:
hansnowqiang
时间:
2015-11-27 12:54
本帖最后由 hansnowqiang 于 2015-11-27 13:03 编辑
兄弟应该是这样的:
public class Demo
{
public static void main(String[] args)
{
demo();
}
public static void demo() {
int num=0;
wai: for(int i = 2;i <= 100;i ++)
{
for(int j = 2;j <i;j ++){
if(i%j==0){
continue wai;
}
}
num++;
System.out.println(i);
}
System.out.println(num);
}
}
你的条件有问题: 比如:4除2余0 ,4除3余1,break了,但是前面已经有能够整除的了。我改成了,当i%j等于0(即有可以整除的数字),就continue,证明这个数值不是素数,跳回外循环,到下一个数值。感觉自己狗熊掰棒子,把前面的全忘了。哎,还的回去再看看。
作者:
冰霜之卅
时间:
2015-11-27 13:36
for(int j = 2;j <= i;j ++){
if(i%j!=0){
break;
}
单看这一句 没有任何意义。
无论是break 还是 一直循环结束
都是什么都没有干。
所以你的内层循环里一定要做些什么对外层循环有影响的事吧?
break :结束当次循环 ,跳出循环。
continue : 结束当次循环,继续下一次循环。
如果给他们加了标记 就是跳出到标记处。
作者:
冯景超
时间:
2015-11-27 23:07
冰霜之卅 发表于 2015-11-27 13:36
for(int j = 2;j
多谢,我也是晕了
作者:
xiaoziyk
时间:
2015-11-27 23:47
应该是==0吧,用!=就不是求素数
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2