对于for循环嵌套if语句理解不好,还有return的用法,求教

青墓 2019-02-10 10:14:06
for循环嵌套if语句,判断一个数是否是质数是,我输出了一下i的值,我现在这种写法,当n不是质数是,i不会输出,不是质数是会输出i的值,求助帮忙理解一下for循环嵌套if语句,还有return的用法
...全文
2939 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
咫尺天涯$ 2019-02-16
  • 打赏
  • 举报
回复
引用 14 楼 xjy2178116699的回复:
[quote=引用 12 楼 dreamfist123 的回复:]
这样

public class PrimeNumber {
public static void main(String[] args) {
for (int i = 10; i < 20; i++){
System.out.println(i + " is a prime number: " + isPrime(i));
}
}

/**
* 判断一个数是否是质数
* 理论上只需要使 i 从 2 遍历到 n - 1,依次判断 n 是否能被 i 整除即可,
* 但是由于 i 的最小值是 2 ,所以遍历到 n/2 即可,因为 n 不可能被大于 n/2 的数整除
* @param n
* @return
*/
public static boolean isPrime(int n){
for (int i = n / 2; i > 1; i--){
if (n % i == 0)
return false;
}
return true;
}
}
main不调用isPrime方法也能输出return的返回结果吗?[/quote] 要想得到某个方法的返回结果当然要调用它才行啊,上面的 main 方法是有调用 isPrime 的
weixin_42547040 2019-02-16
  • 打赏
  • 举报
回复
一般用break跳出当前循环,return是直接返回值。这个方法里区别不大
爱因斯坦PLUS 2019-02-16
  • 打赏
  • 举报
回复
引用 12 楼 dreamfist123的回复:
这样
public class PrimeNumber {
    public static void main(String[] args) {
        for (int i = 10; i < 20; i++){
            System.out.println(i + " is a prime number: " + isPrime(i));
        }
    }

    /**
     * 判断一个数是否是质数
     * 理论上只需要使 i 从 2 遍历到 n - 1,依次判断 n 是否能被 i 整除即可,
     * 但是由于 i 的最小值是 2 ,所以遍历到 n/2 即可,因为 n 不可能被大于 n/2 的数整除
     * @param n
     * @return
     */
    public static boolean isPrime(int n){
        for (int i = n / 2; i > 1; i--){
            if (n % i == 0)
                return false;
        }
        return true;
    }
}
引用math.h,遍历到根号n就够了
xjy2178116699 2019-02-15
  • 打赏
  • 举报
回复
引用 12 楼 dreamfist123 的回复:
这样

public class PrimeNumber {
public static void main(String[] args) {
for (int i = 10; i < 20; i++){
System.out.println(i + " is a prime number: " + isPrime(i));
}
}

/**
* 判断一个数是否是质数
* 理论上只需要使 i 从 2 遍历到 n - 1,依次判断 n 是否能被 i 整除即可,
* 但是由于 i 的最小值是 2 ,所以遍历到 n/2 即可,因为 n 不可能被大于 n/2 的数整除
* @param n
* @return
*/
public static boolean isPrime(int n){
for (int i = n / 2; i > 1; i--){
if (n % i == 0)
return false;
}
return true;
}
}
main不调用isPrime方法也能输出return的返回结果吗?
kekuihuazi 2019-02-15
  • 打赏
  • 举报
回复
这运算 够暴力的
咫尺天涯$ 2019-02-14
  • 打赏
  • 举报
回复
这样
public class PrimeNumber {
    public static void main(String[] args) {
        for (int i = 10; i < 20; i++){
            System.out.println(i + " is a prime number: " + isPrime(i));
        }
    }

    /**
     * 判断一个数是否是质数
     * 理论上只需要使 i 从 2 遍历到 n - 1,依次判断 n 是否能被 i 整除即可,
     * 但是由于 i 的最小值是 2 ,所以遍历到 n/2 即可,因为 n 不可能被大于 n/2 的数整除
     * @param n
     * @return
     */
    public static boolean isPrime(int n){
        for (int i = n / 2; i > 1; i--){
            if (n % i == 0)
                return false;
        }
        return true;
    }
}
qq_41849238 2019-02-13
  • 打赏
  • 举报
回复
return关键字并不是专门用于跳出循环的,return的功能是结束一个方法。 一旦在循环体内执行到一个return语句,return语句将会结束该方法,循环自然也随之结束。与continue和break不同的是,return直接结束整个方法,不管这个return处于多少层循环之内。
小小菜鸟肥 2019-02-13
  • 打赏
  • 举报
回复
return的意思就是返回调用函数的位置;比如,你在某段程序中执行 xx.isPrime(6),调用该函数。然后程序就开始执行该函数,如果执行到retrun,则直接会跳回xx.irPrime(6);这条语句的位置,然后执行接下来的语句。否则,会将.isPrime()函数完全执行完,然后才返回。
XQ0228 2019-02-13
  • 打赏
  • 举报
回复
return::结束该函数,如果该函数有返回值,将返回值返回到主函数(main方法);没有返回值,直接回到主函数,继续执行后面的代码。
你写的isPrime()函数,是 如果符合if的条件,输出“该数不是质数”。不符if的条件说,输出 i 的值????
应该j将return改为continue,
continue:跳过本次循环(for循环中,continue后的代码不再被执行),然后执行下一次循环。
qq_39936465 2019-02-13
  • 打赏
  • 举报
回复
是我搞错了,不过这个程序当不是n质数是还是会输出i的比如 n=25,还是会输出2,3,4。

return确实和7楼说的一样,其实可以把方法中的打印作为 返回值,传递给main




String isPrime(int n) {
for(int i=2;i<(n/2);i++) {
if(n%i==0) {
return "该数不是质数";
}
System.out.println(i);
}
return "该数是质数";
}

public static void main(String[] args) {
Util u = new Util();
System.out.println(u.isPrime(20));
System.out.println("--------------");
System.out.println(u.isPrime(7));
System.out.println("--------------");
}

呆呆_小茗 2019-02-13
  • 打赏
  • 举报
回复
七楼的话有道理
快乐先生 2019-02-12
  • 打赏
  • 举报
回复
在此处最好是用break,中断循环。
lazy-init=true 2019-02-12
  • 打赏
  • 举报
回复
n<0; n%i==0方法怎么会进去?这个方法有问题
qq_39936465 2019-02-11
  • 打赏
  • 举报
回复
return如果是不带参数的,应该与continue相当
青墓 2019-02-11
  • 打赏
  • 举报
回复
就是对跳转不理解,才想问一下,的确平时是只用if else
qq_39936465 2019-02-11
  • 打赏
  • 举报
回复
for循环内为什么不用if...else...,虽然用return也能达到效果,但是跳转对阅读程序没有什么帮助,能少用跳转的就少要用跳转,让程序的可读性更高。

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧