返回值

返回值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//求指定两个数的最大公约数和最小公倍数
        System.out.println("请输入两个整数");
        int a=new Scanner(System.in).nextInt();
        int b=new Scanner(System.in).nextInt();
        int c=zdgys(a,b);
        long d=zxgbs(a,b);
        System.out.println("最大公因数:"+c);
        System.out.println("最小公倍数:"+d);
    }
    private static int zdgys(int a,int b) {
        int min=a<b?a:b;
        for(int i=min;i>=1;i--){
            if(a%i==0&& b%i==0){
                return i;
            }
        }
        return 0;
         
    }
    private static long zxgbs(int a,int b) {
        int max=a<b?b:a;
        for (long i=max;;i++) {
            if(i%a==0&&i%b==0) {
                return i;
            }
        }

https://img1.sycdn.imooc.com//climg/63845cce09dae45717991486.jpg两个都是有返回值的,为什么上面的有一个返回0,下面的就不要写返回0呢

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,zdgys()方法中的代码,是可以不执行循环,所以需要在循环外进行书写返回值。具体可查看下图中的注释,结合代码思路更清晰哦~

https://img1.sycdn.imooc.com//climg/638463db09bd9a5d12670662.jpg

祝学习愉快!

  • qq_慕的地4190246 提问者 #1

    https://img1.sycdn.imooc.com//climg/6384656009a6eb4325511333.jpg这两个不都是同样的方法吗,你的注释里,怎么一个有return0,一个没有呢

    2022-11-28 15:39:07
  • 同学你好,因一个有循环条件,一个没有循环条件。第一个方法,因有循环条件,则不符合条件就需要执行循环下面的代码,所以需要在循环外重新设置返回值。

    而第二方法没有循环条件,并不会执行到循环外的代码,所以不需要在循环设置返回值。

    祝学习愉快!

    2022-11-28 15:44:09
  • 你说的循环条件是for后面括号里的第二个条件吗,除了这个我没看到别的什么条件了

    2022-11-28 16:00:34
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码