Прохожу тест-задачу:
С помощью тернарного оператора замените инициализацию переменной b
в указанном коде:
int a = 10;
int b;
if (a > 0) {
if (a < 100) {
b = 1;
} else {
b = 0;
}
} else {
b = -1;
}
По-моему, тут надо использовать вложеный тернарный оператор, я сделал так:
int a = 10;
int b;
b = (a > 0) ? ((a < 100) ? b = 1 : b = 0) : b = -1 ;
но тест отвечает, что я не прав. Где я ошибаюсь и почему это так?
Да, вложенная тернарная операция. Логически сделал верно. Но допущена синтаксическая ошибка - попытка присвоить значение переменной b внутри тернарной операции.
Правильно должно быть так:
int a = 10;
int b = a > 0 ? a < 100 ? 1 : 0 : -1;
Вложенное выражение a < 100 ? 1 : 0
возвращает значение, которое используется в выражении выше a > 0 ? ВЛОЖЕННОЕ : -1
, которое так же возвращает значение, но уже непосредственно в переменную b
.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Какой язык быстрее java или scala, допустим есть две программы написанные по тому же алгоритму только одна написана на Java а другая на scala, какая...
Пытаюсь реализовать шифр "Кузнечика" на JavaНо встала проблема