У меня есть два вопроса. Первый
int i = 0;
System.out.println("\nint i is" + (i == 0) ? "i==0" : "i!=0");
Я получаю эту ошибку: Тип несоответствия: невозможно преобразовать из String в boolean
Затмение говорит мне
1 быстрое исправление доступно: Insert! = Null check
второй
System.out.println("\nint i is" + (i == 0) != null ? "i==0" : "i!=0");
С проверкой! = Null я не получаю ошибки, но "\nint я is" не печатается, а результат я == 0. Я полностью не понимаю ошибок. Пожалуйста, помогите =)
Вы должны правильно скопировать условное выражение:
System.out.println("\nint i is" + ((i == 0) ? "i==0" : "i!=0"));
В противном случае +
выполняется перед применением условного выражения, поэтому условие анализируется следующим образом:
"\nint i is" + (i == 0) ? "i==0" : "i!=0"
----------------------- ------ ------
| | |
Condition ---+ | |
When the condition is true -+ |
When the condition is false ----------+
"\nint я is" + (i == 0)
является допустимым выражением Java, которое создает строку, вызывая ошибку "need a Boolean".