Java 参数mysteryReturn

Java 参数mysteryReturn,java,Java,在以下代码中: public class MysteryReturn { //Given the following program: public static void main(String[] args) { int x = 1; int y = 2; int z = 3; z = mystery(x, z, y);

在以下代码中:

public class MysteryReturn {
    //Given the following program:

        public static void main(String[] args) {
            int x = 1;
            int y = 2;
            int z = 3;

            z = mystery(x, z, y);                           // Statement 1
            System.out.println(x + " " + y + " " + z);     // Statement 2
            x = mystery(z, z, x);                         // Statement 3
            System.out.println(x + " " + y + " " + z);   // Statement 4
            y = mystery(y, y, z);                        // Statement 5
            System.out.println(x + " " + y + " " + z);   // Statement 6

        }


        public static int mystery( int z, int x, int y) {
            z--;
            x = 2 * y + z;
            y = x - 1;
            System.out.println(y + " "+ z);
            return x;
        }
    }
我得到以下结果:

报表1:3 0

报表2:1 2 4

报表3:4 3

报表4:5 2 4

报表5:8 1

报表6:5 9 4


语句1对我来说是非常清楚的,但是我不明白语句2中的4是从哪里来的

下面是一步步发生的事情

  • 声明:

    public static int mystery( int z, int x, int y) {
                        // z=1, x=3, y=2
        z--;            // z=0
        x = 2 * y + z;  // x=4
        y = x - 1;      // y=3
        System.out.println(y + " "+ z);  // print: 3 0
        return x;       // return 4
    }
    
    System.out.println(x + " " + y + " " + z); // print: 1 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=4, x=4, y=1
        z--;            // z=3
        x = 2 * y + z;  // x=2*1+3=5
        y = x - 1;      // y=5-1=4
        System.out.println(y + " "+ z);  // print: 4 3
        return x;       // return 5
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=2, x=2, y=4
        z--;            // z=1
        x = 2 * y + z;  // x=2*4+1=9
        y = x - 1;      // y=9-1=8
        System.out.println(y + " "+ z);  // print: 8 1
        return x;       // return 9
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 9 4
    
  • 现在z是4

  • 声明:

    public static int mystery( int z, int x, int y) {
                        // z=1, x=3, y=2
        z--;            // z=0
        x = 2 * y + z;  // x=4
        y = x - 1;      // y=3
        System.out.println(y + " "+ z);  // print: 3 0
        return x;       // return 4
    }
    
    System.out.println(x + " " + y + " " + z); // print: 1 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=4, x=4, y=1
        z--;            // z=3
        x = 2 * y + z;  // x=2*1+3=5
        y = x - 1;      // y=5-1=4
        System.out.println(y + " "+ z);  // print: 4 3
        return x;       // return 5
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=2, x=2, y=4
        z--;            // z=1
        x = 2 * y + z;  // x=2*4+1=9
        y = x - 1;      // y=9-1=8
        System.out.println(y + " "+ z);  // print: 8 1
        return x;       // return 9
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 9 4
    
  • 声明:

    public static int mystery( int z, int x, int y) {
                        // z=1, x=3, y=2
        z--;            // z=0
        x = 2 * y + z;  // x=4
        y = x - 1;      // y=3
        System.out.println(y + " "+ z);  // print: 3 0
        return x;       // return 4
    }
    
    System.out.println(x + " " + y + " " + z); // print: 1 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=4, x=4, y=1
        z--;            // z=3
        x = 2 * y + z;  // x=2*1+3=5
        y = x - 1;      // y=5-1=4
        System.out.println(y + " "+ z);  // print: 4 3
        return x;       // return 5
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=2, x=2, y=4
        z--;            // z=1
        x = 2 * y + z;  // x=2*4+1=9
        y = x - 1;      // y=9-1=8
        System.out.println(y + " "+ z);  // print: 8 1
        return x;       // return 9
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 9 4
    
  • 现在x是5。z是4,y还是2

  • 声明:

    public static int mystery( int z, int x, int y) {
                        // z=1, x=3, y=2
        z--;            // z=0
        x = 2 * y + z;  // x=4
        y = x - 1;      // y=3
        System.out.println(y + " "+ z);  // print: 3 0
        return x;       // return 4
    }
    
    System.out.println(x + " " + y + " " + z); // print: 1 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=4, x=4, y=1
        z--;            // z=3
        x = 2 * y + z;  // x=2*1+3=5
        y = x - 1;      // y=5-1=4
        System.out.println(y + " "+ z);  // print: 4 3
        return x;       // return 5
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=2, x=2, y=4
        z--;            // z=1
        x = 2 * y + z;  // x=2*4+1=9
        y = x - 1;      // y=9-1=8
        System.out.println(y + " "+ z);  // print: 8 1
        return x;       // return 9
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 9 4
    
  • 声明:

    public static int mystery( int z, int x, int y) {
                        // z=1, x=3, y=2
        z--;            // z=0
        x = 2 * y + z;  // x=4
        y = x - 1;      // y=3
        System.out.println(y + " "+ z);  // print: 3 0
        return x;       // return 4
    }
    
    System.out.println(x + " " + y + " " + z); // print: 1 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=4, x=4, y=1
        z--;            // z=3
        x = 2 * y + z;  // x=2*1+3=5
        y = x - 1;      // y=5-1=4
        System.out.println(y + " "+ z);  // print: 4 3
        return x;       // return 5
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=2, x=2, y=4
        z--;            // z=1
        x = 2 * y + z;  // x=2*4+1=9
        y = x - 1;      // y=9-1=8
        System.out.println(y + " "+ z);  // print: 8 1
        return x;       // return 9
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 9 4
    
  • 现在y是9。z是4,x是5

  • 声明:

    public static int mystery( int z, int x, int y) {
                        // z=1, x=3, y=2
        z--;            // z=0
        x = 2 * y + z;  // x=4
        y = x - 1;      // y=3
        System.out.println(y + " "+ z);  // print: 3 0
        return x;       // return 4
    }
    
    System.out.println(x + " " + y + " " + z); // print: 1 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=4, x=4, y=1
        z--;            // z=3
        x = 2 * y + z;  // x=2*1+3=5
        y = x - 1;      // y=5-1=4
        System.out.println(y + " "+ z);  // print: 4 3
        return x;       // return 5
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=2, x=2, y=4
        z--;            // z=1
        x = 2 * y + z;  // x=2*4+1=9
        y = x - 1;      // y=9-1=8
        System.out.println(y + " "+ z);  // print: 8 1
        return x;       // return 9
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 9 4
    

  • 下面是一步步发生的事情

  • 声明:

    public static int mystery( int z, int x, int y) {
                        // z=1, x=3, y=2
        z--;            // z=0
        x = 2 * y + z;  // x=4
        y = x - 1;      // y=3
        System.out.println(y + " "+ z);  // print: 3 0
        return x;       // return 4
    }
    
    System.out.println(x + " " + y + " " + z); // print: 1 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=4, x=4, y=1
        z--;            // z=3
        x = 2 * y + z;  // x=2*1+3=5
        y = x - 1;      // y=5-1=4
        System.out.println(y + " "+ z);  // print: 4 3
        return x;       // return 5
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=2, x=2, y=4
        z--;            // z=1
        x = 2 * y + z;  // x=2*4+1=9
        y = x - 1;      // y=9-1=8
        System.out.println(y + " "+ z);  // print: 8 1
        return x;       // return 9
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 9 4
    
  • 现在z是4

  • 声明:

    public static int mystery( int z, int x, int y) {
                        // z=1, x=3, y=2
        z--;            // z=0
        x = 2 * y + z;  // x=4
        y = x - 1;      // y=3
        System.out.println(y + " "+ z);  // print: 3 0
        return x;       // return 4
    }
    
    System.out.println(x + " " + y + " " + z); // print: 1 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=4, x=4, y=1
        z--;            // z=3
        x = 2 * y + z;  // x=2*1+3=5
        y = x - 1;      // y=5-1=4
        System.out.println(y + " "+ z);  // print: 4 3
        return x;       // return 5
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=2, x=2, y=4
        z--;            // z=1
        x = 2 * y + z;  // x=2*4+1=9
        y = x - 1;      // y=9-1=8
        System.out.println(y + " "+ z);  // print: 8 1
        return x;       // return 9
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 9 4
    
  • 声明:

    public static int mystery( int z, int x, int y) {
                        // z=1, x=3, y=2
        z--;            // z=0
        x = 2 * y + z;  // x=4
        y = x - 1;      // y=3
        System.out.println(y + " "+ z);  // print: 3 0
        return x;       // return 4
    }
    
    System.out.println(x + " " + y + " " + z); // print: 1 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=4, x=4, y=1
        z--;            // z=3
        x = 2 * y + z;  // x=2*1+3=5
        y = x - 1;      // y=5-1=4
        System.out.println(y + " "+ z);  // print: 4 3
        return x;       // return 5
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=2, x=2, y=4
        z--;            // z=1
        x = 2 * y + z;  // x=2*4+1=9
        y = x - 1;      // y=9-1=8
        System.out.println(y + " "+ z);  // print: 8 1
        return x;       // return 9
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 9 4
    
  • 现在x是5。z是4,y还是2

  • 声明:

    public static int mystery( int z, int x, int y) {
                        // z=1, x=3, y=2
        z--;            // z=0
        x = 2 * y + z;  // x=4
        y = x - 1;      // y=3
        System.out.println(y + " "+ z);  // print: 3 0
        return x;       // return 4
    }
    
    System.out.println(x + " " + y + " " + z); // print: 1 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=4, x=4, y=1
        z--;            // z=3
        x = 2 * y + z;  // x=2*1+3=5
        y = x - 1;      // y=5-1=4
        System.out.println(y + " "+ z);  // print: 4 3
        return x;       // return 5
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=2, x=2, y=4
        z--;            // z=1
        x = 2 * y + z;  // x=2*4+1=9
        y = x - 1;      // y=9-1=8
        System.out.println(y + " "+ z);  // print: 8 1
        return x;       // return 9
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 9 4
    
  • 声明:

    public static int mystery( int z, int x, int y) {
                        // z=1, x=3, y=2
        z--;            // z=0
        x = 2 * y + z;  // x=4
        y = x - 1;      // y=3
        System.out.println(y + " "+ z);  // print: 3 0
        return x;       // return 4
    }
    
    System.out.println(x + " " + y + " " + z); // print: 1 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=4, x=4, y=1
        z--;            // z=3
        x = 2 * y + z;  // x=2*1+3=5
        y = x - 1;      // y=5-1=4
        System.out.println(y + " "+ z);  // print: 4 3
        return x;       // return 5
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=2, x=2, y=4
        z--;            // z=1
        x = 2 * y + z;  // x=2*4+1=9
        y = x - 1;      // y=9-1=8
        System.out.println(y + " "+ z);  // print: 8 1
        return x;       // return 9
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 9 4
    
  • 现在y是9。z是4,x是5

  • 声明:

    public static int mystery( int z, int x, int y) {
                        // z=1, x=3, y=2
        z--;            // z=0
        x = 2 * y + z;  // x=4
        y = x - 1;      // y=3
        System.out.println(y + " "+ z);  // print: 3 0
        return x;       // return 4
    }
    
    System.out.println(x + " " + y + " " + z); // print: 1 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=4, x=4, y=1
        z--;            // z=3
        x = 2 * y + z;  // x=2*1+3=5
        y = x - 1;      // y=5-1=4
        System.out.println(y + " "+ z);  // print: 4 3
        return x;       // return 5
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 2 4
    
    public static int mystery( int z, int x, int y) {
                        // z=2, x=2, y=4
        z--;            // z=1
        x = 2 * y + z;  // x=2*4+1=9
        y = x - 1;      // y=9-1=8
        System.out.println(y + " "+ z);  // print: 8 1
        return x;       // return 9
    }
    
    System.out.println(x + " " + y + " " + z);   // print: 5 9 4
    

  • 好。语句1返回4。在语句2中打印该4(如
    z
    )。但是既然你理解了陈述1,那么你也必须理解陈述2。你的名字太糟糕了,你把自己的脚给砸了。提供
    x
    作为
    z
    确实令人困惑。@HimBromBeere这是一个Java谜题,因此是有意的。谢谢,我知道语句1返回了4,但为什么它在语句2中打印为z?代码不是我写的,我开始尝试去理解它。正如@qbrutebe所说,这是一个java之谜,因为您将
    神秘(x,z,y)
    的值赋给了
    z
    好的
    4
    。语句1返回4。在语句2中打印该4(如
    z
    )。但是既然你理解了陈述1,那么你也必须理解陈述2。你的名字太糟糕了,你把自己的脚给砸了。提供
    x
    作为
    z
    确实令人困惑。@HimBromBeere这是一个Java谜题,因此是有意的。谢谢,我知道语句1返回了4,但为什么它在语句2中打印为z?代码不是我写的,我开始尝试去理解它。正如@qbrutebe所说,这是一个java之谜,因为您将
    神秘(x,z,y)
    的值赋给了
    z
    ,该值恰好是
    4