Основы приоритета операторов
Часть раздела Основы путешествия по GO на Coddy — урок 27 из 109.
Приоритет операторов определяет порядок выполнения операций в выражении. Операции с более высоким приоритетом выполняются перед операциями с более низким приоритетом.
Создайте программу, которая демонстрирует приоритет операторов:
result1 := 5 + 3 * 2
result2 := (5 + 3) * 2
fmt.Println("5 + 3 * 2 =", result1)
fmt.Println("(5 + 3) * 2 =", result2)Это выводит:
5 + 3 * 2 = 11
(5 + 3) * 2 = 16В первом выражении умножение (*) имеет более высокий приоритет, чем сложение (+), поэтому 3 * 2 вычисляется первым. Во втором выражении скобки переопределяют приоритет по умолчанию, заставляя 5 + 3 вычисляться первым.
Задание
НовичокВ этом испытании вы попрактикуетесь в понимании приоритета операторов в Go. У вас есть несколько переменных с разными значениями, и вам нужно исправить выражение в переменной result, чтобы получить ожидаемый результат.
В данный момент в выражении неправильно расставлены скобки. Ваша задача — добавить скобки в нужных местах, чтобы выражение приняло значение true.
Шпаргалка
Приоритет операторов определяет порядок выполнения операций в выражении. Операции с более высоким приоритетом выполняются раньше операций с более низким приоритетом.
Умножение (*) имеет более высокий приоритет, чем сложение (+):
result1 := 5 + 3 * 2 // равно 11 (сначала 3 * 2, затем + 5)
result2 := (5 + 3) * 2 // равно 16 (сначала 5 + 3, затем * 2)Используйте скобки, чтобы переопределить приоритет по умолчанию и управлять порядком операций.
Попробуйте сами
package main
import "fmt"
func main() {
// Эти переменные уже настроены для вас
a := true
b := false
c := true
// TODO: Добавьте скобки в выражение ниже, чтобы оно приняло значение true
// HINT: Выражение должно принимать значение true
result := a && b || c
// Не изменяйте строку ниже
fmt.Println(result)
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы сравнения и логические операторы
Операторы сравнения — Часть 1Операторы сравнения — Часть 2Логический оператор ANDЛогический оператор ORЛогический оператор NOTОсновы приоритета операторовИтоги: выполнение сравнений7Управляющие конструкции: Циклы
Что такое цикл `for`Цикл `for` — основыЦикл `for` — только условиеКлючевое слово `break`Ключевое слово `continue`Вложенные циклыИтоги — повторение действий2Переменные и базовые типы данных
Что такое переменнаяВывод типов с помощью `:=`Целые числа (int)Числа с плавающей точкойЛогический тип (Booleans)СтрокиНулевые значения (Zero Values)КонстантыПравила именованияИтоги: переменные и типы5Основы ввода-вывода
Форматированный выводСпецификаторы форматаВывод типовБазовый ввод данных пользователемИтоги: ввод и вывод8Функции
Понимание функцийОбъявление функцииВызов функцийПараметры функцииВозврат одного значенияВозврат нескольких значенийИменованные возвращаемые значенияОсновы области видимости функцийИтоги — создание переиспользуемого кода3Базовые операторы
Арифметические операторыОператор деленияОператор остатка от деленияОператор присваиванияКомбинированные операторы присваиванияИнкремент и декрементПовторение — Вычисления6Управление потоком: Условные конструкции
Оператор `if`Ключевое слово `else`Ключевое слово `else if`Затенение переменных в `if`Инициализация переменныхОператор `switch`Switch с выражениямиSwitch без выраженийКлючевое слово `fallthrough`Итоги — Принятие решений