黑马程序员技术交流社区

标题: 哈尔滨校区----基础班第四天---求素数。 [打印本页]

作者: cm181363682    时间: 2015-11-23 23:06
标题: 哈尔滨校区----基础班第四天---求素数。
  今天是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跳出循环,导致了只能在内层循环和输出语句外面加一对{}来实现。
感觉比较笨重,但是思路还是很清晰的。适合刚刚接触的新手。
作者: taitoukankan    时间: 2015-11-23 23:59
写的不错,继续努力啊!
作者: 王大可    时间: 2015-11-24 00:26

作者: 洋葱头头    时间: 2015-11-24 15:36
不需要这么复杂把.....
作者: cm181363682    时间: 2015-12-4 22:52
洋葱头头 发表于 2015-11-24 15:36
不需要这么复杂把.....

嗯,是啊。现在回头看看其实好多步骤可以简化的。不断进步嘛,哈哈




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2