Kotlin: Композиция операций
А что, если понадобится вычислить такое выражение: 3 + 5 - 2? Именно так мы и запишем:
println(3 + 5 - 2) // 3 + 5 - 2 => 8 - 2 => 6Обратите внимание, что компьютер производит арифметические вычисления в правильном порядке: сначала деление и умножение, потом сложение и вычитание. Иногда этот порядок нужно изменить — об этом следующий урок.
Или другой пример:
println(2 * 4 * 5 * 10) // 2 * 4 * 5 * 10 => 8 * 5 * 10 => 40 * 10 => 400Как видно, операции можно соединять друг с другом, получая возможность вычислять все более сложные составные выражения. Чтобы представить себе то, как происходят вычисления внутри интерпретатора, давайте разберем пример: 2 * 4 * 5 * 10.
- Сначала вычисляется 2 * 4 и получается выражение 8 * 5 * 10.
- Затем 8 * 5. В итоге имеем 40 * 10.
- В конце концов происходит последнее умножение, и получается результат 400.
Операции можно соединять друг с другом, получая возможность вычислять все более сложные составные выражения.
Задание
Реализуйте программу, которая вычисляет значение выражения 8 / 2 + 5 - -3 / 2. Не вычисляйте ничего самостоятельно, ваша программа должна производить все вычисления сама.
Обратите внимание, что интерпретатор производит арифметические вычисления в правильном порядке: сначала деление и умножение, потом сложение и вычитание. Иногда этот порядок нужно изменить — об этом следующий урок.
Также обратите внимание на то, что в Kotlin по умолчанию используется целочисленное деление, 3 / 2 будет 1.
Kotlin: Композиция операций
А что, если понадобится вычислить такое выражение: 3 + 5 - 2? Именно так мы и запишем:
println(3 + 5 - 2) // 3 + 5 - 2 => 8 - 2 => 6Обратите внимание, что компьютер производит арифметические вычисления в правильном порядке: сначала деление и умножение, потом сложение и вычитание. Иногда этот порядок нужно изменить — об этом следующий урок.
Или другой пример:
println(2 * 4 * 5 * 10) // 2 * 4 * 5 * 10 => 8 * 5 * 10 => 40 * 10 => 400Как видно, операции можно соединять друг с другом, получая возможность вычислять все более сложные составные выражения. Чтобы представить себе то, как происходят вычисления внутри интерпретатора, давайте разберем пример: 2 * 4 * 5 * 10.
- Сначала вычисляется 2 * 4 и получается выражение 8 * 5 * 10.
- Затем 8 * 5. В итоге имеем 40 * 10.
- В конце концов происходит последнее умножение, и получается результат 400.
Операции можно соединять друг с другом, получая возможность вычислять все более сложные составные выражения.
Задание
Реализуйте программу, которая вычисляет значение выражения 8 / 2 + 5 - -3 / 2. Не вычисляйте ничего самостоятельно, ваша программа должна производить все вычисления сама.
Обратите внимание, что интерпретатор производит арифметические вычисления в правильном порядке: сначала деление и умножение, потом сложение и вычитание. Иногда этот порядок нужно изменить — об этом следующий урок.
Также обратите внимание на то, что в Kotlin по умолчанию используется целочисленное деление, 3 / 2 будет 1.
Ваше упражнение проверяется по этим тестам
import static hexlet.io.TestUtils.getStandartOutput;
import static org.assertj.core.api.Assertions.assertThat;
class Test {
public static void main(final String[] args) {
final String expected = "10";
MainKt.main();
final String actual = getStandartOutput(() -> MainKt.main()).trim();
assertThat(actual).isEqualTo(expected);
}
}Решение учителя откроется через:
20:00
