| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 503 人关注过本帖
标题:请教一个基础的循环问题
只看楼主 加入收藏
Apopo
Rank: 2
等 级:论坛游民
帖 子:15
专家分:30
注 册:2010-9-16
结帖率:100%
收藏
已结贴  问题点数:2 回复次数:6 
请教一个基础的循环问题
打印3-1000以内的所有素数
程序代码:
package package01;
public class SuShu {
    public static void main(String[] args) {
        int i,j;
        for(i=3;i<=1000;i++){
            for(j=2;j<=i-1;j++){
                if(i%j==0)
                    break;
        }if(i==j)
            System.out.println(i);
    }
    }
}
请问if(i==j)怎么理解呢?
搜索更多相关主题的帖子: 基础 
2010-09-16 02:45
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:0 
如果i==j,即证明for循环没有中途退出, 因此i 是质数
如果i!=j, 证明for循环在中途退出了, 即i%j==0的条件成立了, i 不是质数

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-09-16 08:12
Apopo
Rank: 2
等 级:论坛游民
帖 子:15
专家分:30
注 册:2010-9-16
收藏
得分:0 
说实话我还没懂啊
if表示的判断成立证明i是质数这个我知道
上一个if里i%j==0表示i能被j整除
不知道这里i==j表示的是什么
2010-09-16 22:18
gameohyes
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:53
帖 子:1275
专家分:3629
注 册:2009-3-5
收藏
得分:0 
多去调试吧。看程序是如何执行的.以及各值的变化.

C#超级群 74862681,欢迎大家的到来!
2010-09-16 23:07
shellingford
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:19
帖 子:228
专家分:1348
注 册:2010-8-9
收藏
得分:2 
package package01;
public class SuShu {
    public static void main(String[] args) {
        int i,j;
        for(i=3;i<=1000;i++){
            for(j=2;j<=i-1;j++){
                if(i%j==0)
                    break;
            }
            if(i==j)
                System.out.println(i);
        }
    }
}

i%j==0判断是否能被整除,如果被整除了说明不是质数,立刻执行break跳出循环,此时j不会等于i
如果里面的循环都做过一遍仍然没有被整除,说明他是质数,此时i==j,会因为不满足循环条件j<=i-1而跳出循环
在接下来的语句中判断是因为执行了break语句跳出的还是因为不满足循环条件跳出的一个方法就是判断i是否等于j
2010-09-16 23:26
打肿脸充胖子
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-8-29
收藏
得分:0 
回复 3楼 Apopo
2楼说的对,i==j才表明i是素数,你可以用一个数代进去调试,在循环完毕之后i和j是相等的,如果中途跳出i和j就不相等了,即满足了条件i%j==0。如果一直不满足这个条件,在循环结束的时候由于j++的存在使得此时j和i是相等的
2010-09-16 23:35
Apopo
Rank: 2
等 级:论坛游民
帖 子:15
专家分:30
注 册:2010-9-16
收藏
得分:0 
回复 5楼 shellingford
谢谢,说的很详细
2010-09-17 00:22
快速回复:请教一个基础的循环问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034787 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved