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

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

下面这个代码是成立的,可我想不通,就是变量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中较大的那个值,所以返回的就是最大值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容