Тимур Машнин

Объектно-ориентированное программирование на Java. Платформа Java SE


Скачать книгу

случае, если вычисление логического выражения не завершается, вся программа не будет завершена.

      Поэтому, на самом деле, у нас есть три случая, это true, false и undefined.

      В дальнейшем, анализируя сегменты кода, мы также должны учитывать это неопределенное значение.

      Для логических выражений это означает, что у нас есть три возможных случая – true, false и undefined.

      И это отличается от традиционной математики, где мы обычно имеем только истину и ложь.

      Теперь, давайте немного вспомним о возможностях, которые мы видели.

      Здесь, слева, у нас есть условное утверждение, где, в зависимости от значения булевой переменной b, мы присваиваем m или n переменной x.

      С другой стороны, у нас есть тройной оператор, который позволяет писать логические выражения.

      Оба сегмента кода эквивалентны.

      Теперь рассмотрим этот пример.

      Представьте, что у нас есть булево значение b и что выражение сравнивает b с true.

      Это может быть явно упрощено до b, так как если b истинно, b == true, вычисляется как true.

      И если b является ложным, b == true, вычисляется как false.

      И если b не определено, выражение b == true также не определено.

      Так почему бы не написать более простую версию, просто b как условие?

      Аналогично вы можете поступить, если мы имеем выражение b == false.

      Вы можете выбрать более простую версию, не b.

      И еще вы можете написать b как условие, и поменять операторы S1 и S2.

      Здесь у нас есть другое выражение.

      Давайте проанализируем его.

      Здесь, если b не определено, результат не определен.

      Если b истинно, результат будет истинным.

      И если b является ложным, результат будет ложным.

      Мы рассмотрели все возможные значения b и всего выражения

      И мы видим, что они имеют одинаковые значения, что они эквивалентны.

      Поэтому вместо всего этого выражения мы можем написать только b.

      Та же самая ситуация будет с выражением не b.

      Теперь, давайте посмотрим выражение b? c: false.

      Если b не определено, все выражение не определено.

      Если b истинно, результат равен c.

      Однако, если b является ложным, результат будет ложным.

      Результат будет истина, только если b и с истина, во всех других случаях результат будет ложным.

      Это эквивалентно логическому оператору и.

      И наоборот, выражение b? true: c эквивалентно логическому оператору или.

      Циклы while и for

      Давайте представим, что мы хотим разделить целое число m на другое целое число n.

      И мы хотим получить результат целочисленного деления, то есть самое большое количество раз, которое n вписывается в m.

      Например, целочисленное деление 7 на 2, равно