У меня есть эта оценка, которая мне дана, но эти два вопроса застряли у меня в голове. Эти два кода кажутся похожими, но дают разные выходные данные, основанные на приращении
Код # 1:
package com.company;
class Main {
public static void main(String [] args) {
boolean x = true;
boolean y = false;
short z = 42;
if((z++ == 42) && (y = true))
z++;
if((x = false) || (++z == 45))
z++;
System.out.println("z = " + z);
}
}
Этот код казался хорошим, он увеличивает значение, которое он должен увеличивать, и возвращает это значение "z", таким образом, вывод
Вывод:
z = 46
Process finished with exit code 0
Но второй код выглядел иначе, поскольку он не сохраняет увеличенное значение
Код # 2: пакет com.company;
publi c class Test2
{
public static void main(String [] args) {
boolean x = true;
boolean y = false;
short z = 42;
if((x == true) && (y = true))
z++;
if((y == true) || (++z == 44))
z++;
System.out.println("z = " + z);
}
}
Это не сохраняет приращение на втором, если условный оператор, как первый код
Вывод:
z = 44
Process finished with exit code 0
Я что-то упустил?