用java输出1到100的质数,我写了这个程序,不知道错在哪里,谢谢 public class JavaDemo{ public static v
publicclassJavaDemo{publicstaticvoidmain(String[]args){booleanm=true;for(intx=2;x<=10...
public class JavaDemo{
public static void main(String[] args) {
boolean m=true;
for(int x=2;x<=100;x++)//表示1-100的数
{
for(int i=2;i<x;i++)
{
if(x%i==0){ m=false;break;}
}
if(m)
System.out.println(x);
}
}
}
输出结果只有2,和3.我不知道程序错哪了呢。。。。。。。是素数,题目错了点 展开
public static void main(String[] args) {
boolean m=true;
for(int x=2;x<=100;x++)//表示1-100的数
{
for(int i=2;i<x;i++)
{
if(x%i==0){ m=false;break;}
}
if(m)
System.out.println(x);
}
}
}
输出结果只有2,和3.我不知道程序错哪了呢。。。。。。。是素数,题目错了点 展开
7个回答
展开全部
public class JavaDemo {
public static void main(String[] args) {
boolean m = true;
for (int x = 2; x <= 100; x++)// 表示1-100的数
{
m=true;
for (int i = 2; i < x; i++) {
if (x % i == 0) {
m = false;
break;
}
}
if (m)
System.out.println(x);
}
}
}
======================================================
循环初始化的时候m也得初始化为true啊,呵呵
public static void main(String[] args) {
boolean m = true;
for (int x = 2; x <= 100; x++)// 表示1-100的数
{
m=true;
for (int i = 2; i < x; i++) {
if (x % i == 0) {
m = false;
break;
}
}
if (m)
System.out.println(x);
}
}
}
======================================================
循环初始化的时候m也得初始化为true啊,呵呵
展开全部
if(m)
System.out.println(x);
这里你错了。
该是
if(m) System.out.println(x);
else m=true;
System.out.println(x);
这里你错了。
该是
if(m) System.out.println(x);
else m=true;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(x%i==0){ m=false;break;}
当这个地方设置为false之后就永远是false了,再也不会执行到下面的地方:
if(m)
System.out.println(x);
}
可以在for(int x=2;x<=100;x++)//表示1-100的数 这个循环体内每次循环开始或者结束的时候将m设置为true
当这个地方设置为false之后就永远是false了,再也不会执行到下面的地方:
if(m)
System.out.println(x);
}
可以在for(int x=2;x<=100;x++)//表示1-100的数 这个循环体内每次循环开始或者结束的时候将m设置为true
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
肯定只有2和3,到4的时候m赋值为false,后面就不会输出了
在内循环前面加一句 m=true;就好了
在内循环前面加一句 m=true;就好了
追问
我的m=false。只是针对子循环啊
追答
可是你的m一旦变成false ,下面的循环里m都是false,当然不会输出,你必须在每次循环前面吧m初始化为true,你加上试试就知道了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
知道问题出在哪么?当你的x=4时,第二个循环里的判断是不是就成立了,成立了之后m是不是变成false了,然后break,内层循环跳出了。继续循环外层循环。之后的96次循环中,没有任何一行代码是让m重新变成true的,所以你的那个if(m)判断,在之后的96次循环中都不会成立,也就都不会输出任何东西了。解决方法,m放在外层循环内声明即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(x%i==0){ m=false;break;}把里面的break放下面
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询