黑马程序员技术交流社区
标题:
判断101-200之间有多少个素数,不知道错在哪了?
[打印本页]
作者:
伊特123
时间:
2015-7-8 23:21
标题:
判断101-200之间有多少个素数,不知道错在哪了?
class ExpendTest {
public static void main(String[] args) {
System.out.println(printTest());
}
public static int printTest() {
w:for(int i=101;i<=200;i++)
{
q:for (int j=2;j<=i-1;j++)
{
if (i%j!=0)
{
continue;
}else
{
continue w;
}
}
return i;
}
}
}
作者:
wx_HWRW5aF7
时间:
2015-7-9 00:13
你还没有理解透for循环。
作者:
梁思宇
时间:
2015-7-9 01:09
首先,假如方法没有进入for循环的话,你的printTest就没有返回值了
其次,当你的 j 的值为100的时候,内循环第一步判断,无法整除,于是continue重新循环,无法通过判断,不进入内循环,然后会继续往下走,而你的内循环下面是一个return i; 于是程序就将i的值101直接返回了.
作者:
wing-SF
时间:
2015-7-9 09:48
本帖最后由 wing-SF 于 2015-7-9 09:50 编辑
w:和q:标识for循环吗?
作者:
桑小年
时间:
2015-7-9 10:26
最后是不能用return,return是结束一个方法的,所以当你程序运行的return时,就返回101,结束这个程序,所以最终结果是没有结果,因为你都没输出
作者:
firwood
时间:
2015-7-9 14:10
打印语句需要放在循环体中。或者先将检测好的素数存储起来,然后统一输出。使用return的话,只能返回一个值,就结束方法了。如果需要使用这种return的方法的话,就需要在main中循环测试需要的数字了。
作者:
chenwei520
时间:
2015-7-9 15:21
加油 小伙子。
作者:
rose_xiaomei
时间:
2015-7-9 19:54
这种写法还是第一次见到,涨姿势了
作者:
进军黑马
时间:
2015-7-9 20:18
在学习
作者:
tsiov
时间:
2015-7-9 20:33
return 就是结束。
作者:
木头人之死
时间:
2015-7-9 21:35
表示看不懂!!!!
package mianshixuqiu_com;
/*
* 找素数
* 找出两个值之间的所有素数
*
*
* */
public class Test2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
sushu(100,200);
}
//定义寻找素数的方法
public static void sushu(int start,int end){
int geshu=0;
for(int k=start;k<=end;k++){
boolean b=true;
for(int i=2;i<Math.sqrt(k);i++){
if(k%i==0){
b=false;
break;
}
}
if(b){
geshu++;
System.out.println(k);
}
}
System.out.println(geshu+"素数个数");
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2