Условный оператор ? :, известный также, как тройной оператор позволяет закодировать условие if/else в одну строку. Если условие истинно, то результат - левое выражение от двоеточия, иначе - правое. Заметьте, что выражения слева и справа от двоеточия должны быть приводимы к типу переменной, к которой эти выражения присваиваются. Например, пусть a, b, c - это переменные типа int, а x - переменная типа boolean. Тогда выражение a = x ? b : c эквивалентно следующему фрагменту кода:
1. if (x) {
2. a = b;
3. }
4. else {
5. a = c;
6. }
Конечно, вместо a, b, c и x могут быть использованы выражения гораздо более сложного вида.
a = b ? c ? d : e ? f : g : h ? i : j ? k : l;
Резюмируем тонкости использования условного оператора на примере выражения a = x ? b : c:
- Типы выражений b и c должны быть совместимыми и даже идентичными, если их привести.
- Тип выражения x должен быть boolean.
- Типы выражений b и c должны быть совместимыми с типом переменной a.
- Переменной a присваивается b, если x = true, и c - в противном случае (x = false).
Комментариев нет:
Отправить комментарий