java 问题:为什么我的这个程序不能实现输出100以内质数的和?

publicclassDemon_30{publicstaticvoidmain(String[]args){intsum=0;booleanb=true;for(int... public class Demon_30 {

public static void main(String[] args) {
int sum=0;
boolean b=true;
for(int i=3;i<100;i++){
for(int j=2;j<i;j++){
if(i%j==0){
b=false;
break;
}
}
if(b){
System.out.println(i);
sum+=i;
}
}
System.out.println(sum+2);
}
}
展开
 我来答
百度网友39b8b51
2011-12-31 · TA获得超过281个赞
知道小有建树答主
回答量:199
采纳率:0%
帮助的人:213万
展开全部
因为b一旦被置为false以后就一直是false了,下面的if语句就不能执行了啊。
应该在加个当是质数时把b置为true的语句啊。
楚又蓝0iTdaf
2011-12-31 · TA获得超过394个赞
知道答主
回答量:108
采纳率:100%
帮助的人:66.1万
展开全部
public static void main(String[] args) {
int sum=0;
boolean b;
for(int i=3;i<100;i++){
b=true;
for(int j=2;j<i;j++){
if(i%j==0){
b=false;
break;
}
}
if(b){
System.out.println(i);
sum+=i;
}
}
System.out.println(sum+2);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
邪恶势力联盟
2011-12-31 · TA获得超过112个赞
知道答主
回答量:120
采纳率:0%
帮助的人:52.5万
展开全部
你把boolean b=true;放在第一个for循环里面,像你这样当循环到6的时候,b的值久违false了,而你下面有没有代码让b在等于true,所以你应该在每次循环开始的时候,b的值为true
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式