oPiZiNiu1
2020-05-24 01:00
采纳率: 100%
浏览 78
已采纳

请求大神帮我看一看下面的代码分析一下为什么成立,是关于比较四个数最大值的

下面这个代码是成立的,可我想不通,就是变量x,y,z那里。
它们为什么会自动比较出最大值呢?明明没有任何相关的声明啊?
我现在就学了一个min函数,可min不是返回两值最小吗?
自己查了发现还有个返回最大值的max函数,但这里也没有关于max函数的声明
想不通,蓝瘦T T

    public class 四个数值求最大值 {


public static void main(String[] args) throws Exception {

    BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
    String num = buffer.readLine();
    String num1 = buffer.readLine();
    String num2 = buffer.readLine();
    String num3 = buffer.readLine();

    int a = Integer.parseInt(num);
    int b = Integer.parseInt(num1);
    int c = Integer.parseInt(num2);
    int d = Integer.parseInt(num3);

    int x = bijiao(a,b);
    int y = bijiao(x,c);
    int z = bijiao(y,d);

    System.out.println(z);


}
public static int bijiao(int a , int b){
    int m = a;
    if(a<=b)
    {
        m=b;

    }
    return m;
}

}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • yin_jia_521 2020-05-24 12:06
    已采纳

    你的方法:bijiao里不是有一个if判断吗。
    首先:m=a 意思是将a指向的内存地址,赋值给m,也就是说m与a都指向了同一个内存地址(也就是同一个值)
    然后:if判断如果a<=b 则将b指向的内存地址赋值给m 也就是说如果a小于等于b那么m==b
    最后:将m指向的值返回了。
    在整个方法逻辑里m所指向的值都是ab中较大的那个值,所以返回的就是最大值。

    点赞 打赏 评论
  • blownewbee 2020-05-24 09:05

    问题解决的话,请点下采纳

    public static int bijiao(int a , int b){
        int m = a;
        if(a<=b)
        {
            m=b;
    
        }
        return m;
    }
    这个函数返回2个数字里最大的
    
     int x = bijiao(a,b);
        int y = bijiao(x,c);
        int z = bijiao(y,d);
    
            x是ab最大的,y是xc中最大的,也就是abc中最大的
            z是yd中最大的,也就是abcd中最大的
    
    点赞 打赏 评论

相关推荐 更多相似问题