#java #boolean #variable-assignment
#java #логическое #переменная-назначение
Вопрос:
Я не понимаю, почему, когда я создаю логические значения, я могу сделать:
boolean a, b, c = false;
и пусть им всем будет присвоено значение false, но позже, когда я захочу изменить значения, я не смогу этого сделать
a, b, c = true;
Кто-нибудь знает, почему это так?
Комментарии:
1. Потому что это синтаксис языка.
2.
a, b, c = false
это неa = b = c = false
; это «установить c в false, а a и b в любое значение по умолчанию (которое также является false)»3. Использовать
boolean a = false, b = false, c = false;
4. @tobias_k начинается ли присваивание справа налево?
5.
boolean a = false, b, c;
Как вы думаете, что здесь происходит?
Ответ №1:
boolean a, b, c = false;
Вы объявляете a
, b
и c
здесь, но только присваиваете c
. Как в:
boolean a;
boolean b;
boolean c = false;
Если вы хотите назначить каждую из переменных, вы должны сделать это явным:
boolean a = false, b = false, c = false;
(Но в этот момент, вероятно, было бы более удобно разделить его на несколько строк.)
Следовательно, нет смысла иметь
a, b, c = true; // invalid
Однако вы можете использовать
a = b = c = true; // valid
чтобы назначить a
, b
и c
все true
.
Комментарии:
1. Итак, второе действительно похоже:
a; b; c = true;
Что бессмысленно?2. @jhobbie Я полагаю, вы могли бы сказать это. Это просто сводится к тому, что синтаксически недопустимо использовать запятые в таком выражении.