я очень запутался, как параметры и возврат - PullRequest
0 голосов
/ 06 мая 2020

После того, как я выполню этот код, на выходе будет 3 0 1 2 4, не могли бы вы объяснить результат? играет ли в этом роль параметр в последовательности классов mystery?

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


           z = mystery(x,z,y);
           System.out.println(x + " "+y+" "+z);

    }
    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 голосов
/ 06 мая 2020

Он печатает 1 2 3, а вы не вызываете функцию mystery, поэтому это не может повлиять.

UPD. Вопрос был обновлен, поэтому давайте посмотрим на вашу функцию

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;
}

, ее можно вернуть на

public static int mystery(int z, int x, int y) {
    return 2 * y + z-1;
}

, и вы вызываете ее с аргументами 1,3,2 - mystery(1,3,2), поэтому ответьте становится 2*2+1-1, что равно 4, поэтому у вас z = 4, поэтому

    System.out.println(x + " "+y+" "+z);

напечатает 1 2 4

...