A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  今天是Java基础班的第四天,我们学习了for 和while循环,以及break continue。
  今天老师提的问题是计算100以内的素数。
  虽然老师已经讲了他的程序,而且也很简洁,但我还是想把我的思路发上来给大家看一看。
  思路: 多层嵌套---对循环取余----刨除1和本身 --用continue ---其它取余等于0则break
class Demo_SuShu {
        public static void main(String[] args) {
                int count = 0;
                for (int i = 1;i <= 100 ;i++ ) {
                        a : {
                        for (int j =1;j <= i ;j++ ) {
                                if (i == 1) {//如果数是1 结束循环a 不输出语句和计算count
                                        break a;
                                }
                                if (j == 1 || j == i) {//如果除以的是1或者本身 终止本次循环,继续下次循环
                                        continue;
                                }
                                if (i%j == 0) {//如果能被其它的数整除 结束循环a 不输出语句和计算count
                                        break a;
                                }
                        }
                        count ++;//内循环不满足 则说明为素数 输出下面语句 并且count加1
                        System.out.print(i + "\t");
                        }
                }
                System.out.println("共" + count + "个");
        }
}
我的思路是对所有都计算,然后刨除1,再刨除除以的是1或者本身,再刨除能被0整除的。
但是continue语句不熟练,最后用的break跳出循环,导致了只能在内层循环和输出语句外面加一对{}来实现。
感觉比较笨重,但是思路还是很清晰的。适合刚刚接触的新手。

评分

参与人数 1黑马币 +3 收起 理由
张研老师 + 3 赞一个!

查看全部评分

4 个回复

正序浏览
洋葱头头 发表于 2015-11-24 15:36
不需要这么复杂把.....

嗯,是啊。现在回头看看其实好多步骤可以简化的。不断进步嘛,哈哈
回复 使用道具 举报
不需要这么复杂把.....
回复 使用道具 举报
回复 使用道具 举报
写的不错,继续努力啊!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马