Я изучаю Java, исходя из C, и я нашел интересное различие между языками с типом boolean
. В C нет bool
/ean
, поэтому нам нужно использовать числовые типы для представления логической логики (0 == false
).
Я думаю, что в Java это не работает:
int i = 1;
if (i)
System.out.println("i is true");
Не меняет условное выражение с помощью typecast:
if ((boolean)i)
Итак, сделаем что-то вроде:
if ( i != 0 )
Есть ли другой способ выполнить логическую проверку C-ish в типе int
? Просто интересно, были ли какие-либо трюки Java, которые позволяют логическую логику для небулевых типов, подобных этому.
EDIT:
Приведенный выше пример был очень упрощенным и уступил себя узкому кругу мышления. Когда я задал вопрос первоначально, я думал о небулевых возвращениях из вызовов функций. Например, вызов Linux fork()
. Он не возвращает int
как таковой, но я мог бы использовать числовое возвращаемое значение для условного выражения, как в:
if( fork() ) {
// do child code
Это позволяет мне обрабатывать код в условном выражении для дочернего элемента, в то время как это не делается для родителя (или в случае отрицательного результата возврата для ошибки).
Поэтому я не знаю достаточно Java, чтобы дать хороший пример "Java" на данный момент, но это было мое первоначальное намерение.