Разве A = B не совпадает с B = A? - PullRequest
       0

Разве A = B не совпадает с B = A?

0 голосов
/ 11 сентября 2018

Почему мой код неверен на initialAge = age;?

Когда я увидел решение в сети, его следует поменять на age = initialAge.Разве A = B не совпадает с B = A?


public class Person {
    private int age;    

    public Person(int initialAge) {
       if (initialAge >=0){
         initialAge = age;
       }else if( initialAge < 0){
            age =0;
           System.out.println("Age is not valid, setting age to 0.");

       }
        // Add some more code to run some checks on initialAge
    }

    public void amIOld() {
        // Write code determining if this person's age is old and print the correct statement:
        if (age <  13){
        System.out.println("You are young.");
        } else if ( age >= 13 && age < 18){
          System.out.println("You are a teenager.");  
        }else {
          System.out.println("You are old.");  
        }
    }

    public void yearPasses() {
        age++;
        // Increment this person's age.
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        for (int i = 0; i < T; i++) {
            int age = sc.nextInt();
            Person p = new Person(age);
            p.amIOld();
            for (int j = 0; j < 3; j++) {
                p.yearPasses();
            }
            p.amIOld();
            System.out.println();
        }
        sc.close();
    }
}

1 Ответ

0 голосов
/ 11 сентября 2018

В Java назначение переменной ассоциативно справа налево .Для вашего теоретического примера в контексте присваивания A = B подразумевает, что значение B теперь хранится в A.Если поменять местами, то значение A будет сохранено в B.

. Математическая эквивалентность выполняется с помощью оператора ==.= всегда означает присваивание.

Почему ваш код неверен с initialAge = age - initialAge является параметром и его значение теряется после возврата метода, поэтому переназначение егоспорный вопрос.Ваше поле age имеет значение по умолчанию 0, поскольку оно не получает значение для initialAge.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...