How to use python if else in one line with examples
Содержание:
- Вложенные операторы If
- Как работает if else
- Сравнение строк
- Объекты Bool и логические операторы
- Логические выражения
- И оператор
- Или оператор
- Ленивая оценка
- Тестирование на множественные условия
- Python if..elif..else in one line
- Оператор if в Python
- Условный оператор if/elif/else, ветвление кода программы.
- What is the Python if else statement?
- Python list comprehension transposes rows and columns
- A common if else use in Python
- Python if else Command Example
- What are if elif else statement in Python?
- Python Compound If Statement Example
- What is if…else statement in Python?
- Операторы препроцессора
Вложенные операторы If
Вложенные операторы if используются, когда нужно проверить второе условие, когда первое условие выполняется. Для этого можно использовать оператор if-else внутри другого оператора if-else. Синтаксис вложенного оператора if:
if statement1: #внешний оператор if print("true") if nested_statement: #вложенный оператор if print("yes") else: #вложенный оператор else print("no") else: #внешний оператор else print("false")
Результатом работы программы может быть:
Если значение statement1 равно true, программа проверяет, равно ли true значение nested_statement. Если оба условия выполняются, результат будет следующим:
Вывод:
true yes
Если statement1оценивается как true, но nested_statement оценивается как false, вывод будет уже другим:
Вывод:trueno
Значение statement1 равно false, а вложенный оператор if-else не будет выполняться, поэтому «сработает» оператор else:
Вывод:
false
Также можно использовать несколько вложенных операторов if:
if statement1: #внешний if print("hello world") if nested_statement1: #первый вложенный if print("yes") elif nested_statement2: # первый вложенный elif print("maybe") else: # первый вложенный else print("no") elif statement2: # внешний elif print("hello galaxy") if nested_statement3: #второй вложенный if print("yes") elif nested_statement4: # второй вложенный elif print("maybe") else: # второй вложенный else print("no") else: # внешний else statement("hello universe")
В приведенном выше коде внутри каждого оператора if (в дополнение к оператору elif ) используется вложенный if. Это дает больше вариантов в каждом условии.
Используем пример вложенных операторов if в программе grade.py. Сначала проверим, является ли балл проходным (больше или равно 65%). Затем оценим, какой буквенной оценке соответствует балл. Но если балл непроходной, нам не нужно проверять буквенные оценки. И можно сразу информировать ученика, что балл является непроходным. Модифицированный код с вложенным оператором if:
if grade >= 65: print("Passing grade of:") if grade >= 90: print("A") elif grade >=80: print("B") elif grade >=70: print("C") elif grade >= 65: print("D") else: print("Failing grade")
При переменной grade равной 92 первое условие будет выполнено, и программа выведет «Passing grade of:». Затем она проверит, является ли оценка больше или равной 90. Это условие также будет выполнено и она выведет A.
Если переменная grade равна 60, то первое условие не будет выполнено. Поэтому программа пропустит вложенные операторы if, перейдет к оператору else и выведет сообщение «Failing grade».
Но можно добавить еще больше вариантов и использовать второй слой вложенных if. Например, чтобы определить оценки A+, A и A-. Мы можем сделать это, сначала проверив, является ли оценка проходной, затем, является ли оценка 90 или выше. А после этого, превышает ли оценка 96 для A+, например:
if grade >= 65: print("Passing grade of:") if grade >= 90: if grade > 96: print("A+") elif grade > 93 and grade <= 96: print("A") elif grade >= 90: print("A-")
Для переменной grade со значением 96 программа выполнит следующее:
- Проверит, является ли оценка больше или равной 65 (true).
- Выведет «Passing grade of:»
- Проверит, является ли оценка больше или равной 90 (true).
- Проверит, превышает ли оценка 96 (false).
- Проверит, является ли оценка больше 93, а также меньше или равна 96 (true).
- Выведет
- Пропустит оставшиеся вложенные условные операторы и вернется к остающемуся коду.
Результат работы программы для переменной grade равной 96:
Вывод:
Passing grade of: A
Вложенные операторы if позволяют добавлять несколько уровней условий в создаваемый код.
Как работает if else
Синтаксис
Оператор в языке Python – это типичная условная конструкция, которую можно встретить и в большинстве других языков программирования.
Синтаксически конструкция выглядит следующим образом:
- сначала записывается часть с условным выражением, которое возвращает истину или ложь;
- затем может следовать одна или несколько необязательных частей (в других языках вы могли встречать );
- Завершается же запись этого составного оператора также необязательной частью .
Принцип работы оператора выбора в Python
Для каждой из частей существует ассоциированный с ней блок инструкций, которые выполняются в случае истинности соответствующего им условного выражения.
То есть интерпретатор начинает последовательное выполнение программы, доходит до и вычисляет значение сопутствующего условного выражения. Если условие истинно, то выполняется связанный с набор инструкций. После этого управление передается следующему участку кода, а все последующие части и часть (если они присутствуют) опускаются.
Отступы
Отступы – важная и показательная часть языка Python. Их смысл интуитивно понятен, а определить их можно, как размер или ширину пустого пространства слева от начала программного кода.
Благодаря отступам, python-интерпретатор определяет границы блоков. Все последовательно записанные инструкции, чье смещение вправо одинаково, принадлежат к одному и тому же блоку кода. Конец блока совпадает либо с концом всего файла, либо соответствует такой инструкции, которая предшествует следующей строке кода с меньшим отступом.
Таким образом, с помощью отступов появляется возможность создавать блоки на различной глубине вложенности, следуя простому принципу: чем глубже блок, тем шире отступ.
Примеры
Рассмотрим несколько практических примеров использования условного оператора.
Пример №1: создание ежедневного бэкапа (например базы данных):
Пример №2: Проверка доступа пользователя к системе. В данном примере проверяет наличие элемента в списке:
Пример №3: Валидация входных данных. В примере к нам приходят данные в формате . Нам необходимо выбрать все записи определенного формата:
Сравнение строк
Как вы видите,
сравнение двух числовых значений выполняется вполне очевидным образом. Но можно
ли, например, сравнивать строки между собой? Оказывается да, можно. Чтобы
определить, что одна строка больше другой, Python использует
«алфавитный» или «лексикографический» порядок. Другими словами, строки сравниваются
посимвольно. Например:
print('Я' > 'А' ) print( 'Кот' > 'Код' ) print( 'Сонный' > 'Сон' )
Алгоритм
сравнения двух строк довольно прост:
-
Сначала
сравниваются первые символы строк. -
Если первый
символ первой строки больше (меньше), чем первый символ второй, то первая
строка больше (меньше) второй. - Если первые
символы равны, то таким же образом сравниваются уже вторые символы строк.
Сравнение
продолжается, пока не закончится одна из строк. Если обе строки заканчиваются
одновременно, и все их соответствующие символы равны между собой, то строки считаются
равными. Иначе, большей считается более длинная строка.
В примерах выше
сравнение ‘Я’ > ‘А’ завершится на первом шаге, тогда как строки
«Кот» и «Код» будут сравниваться посимвольно:
- К равна К.
- о равна о.
- т больше чем д.
Объекты Bool и логические операторы
Когда мы суммируем два целых объекта с помощью оператора , например , мы получаем новый объект: . Точно так же, когда мы сравниваем два целых числа с помощью оператора , как , мы получаем новый объект: .
None
print(2 < 5) print(2 > 5)
None
print(bool(-10)) # Правда print(bool(0)) # False - ноль - единственное ошибочное число print(bool(10)) # Правда print(bool('')) # False - пустая строка является единственной ложной строкой print(bool('abc')) # Правда
Иногда вам нужно сразу проверить несколько условий. Например, вы можете проверить, делится ли число на 2, используя условие ( дает остаток при делении на ). Если вам нужно проверить, что два числа и оба делятся на 2, вы должны проверить как и . Для этого вы присоединяетесь к ним с помощью оператора (логическое И): .
Python имеет логическое И, логическое ИЛИ и отрицание.
Оператор является двоичным оператором, который оценивает значение тогда и только тогда, когда и его левая сторона, и правая сторона являются .
Оператор является двоичным оператором, который оценивает значение если хотя бы одна из его сторон имеет значение .
Оператор является унарным отрицанием, за ним следует некоторое значение. Он оценивается как если это значение и наоборот.
Давайте проверим, что хотя бы одно из двух чисел заканчивается 0:
15 40
a = int(input()) b = int(input()) if a % 10 == 0 or b % 10 == 0: print('YES') else: print('NO')
Давайте проверим, что число положительно, а число неотрицательно:
if a > 0 and not (b < 0):
Вместо мы можем написать .
Логические выражения
Булевы логические выражения, в дополнение к оценке в или , возвращает значение , которое было истолковано как или . Это Pythonic способ представить логику, которая в противном случае может потребовать теста if-else.
И оператор
оператор вычисляет все выражения и возвращает последнее выражение , если все вычисления выражений . В противном случае она возвращает первое значение , которое вычисляется значение :
Или оператор
оператор вычисляет выражения слева направо и возвращает первое значение , которое вычисляет или последнее значение (если ни один не ).
Ленивая оценка
Когда вы используете этот подход, помните, что оценка ленива. Выражения, которые не требуется оценивать для определения результата, не оцениваются. Например:
В приведенном выше примере, никогда не выполняются , потому что Python может определить все выражение , когда он встречает ( ). Имейте это в виду , если нужно выполнить , чтобы служить вашей логике программы.
Тестирование на множественные условия
Распространенной ошибкой при проверке нескольких условий является неправильное применение логики.
Этот пример пытается проверить , если две переменные имеют больше 2. Заявление оценивается как — . Это дает неожиданный результат , так как вычисляется как , когда не равен нулю.
Каждую переменную нужно сравнивать отдельно.
Другая, аналогичная ошибка допущена при проверке, является ли переменная одним из нескольких значений. Утверждение в этом примере оценивается как — . Это дает неожиданный результат , так как и каждый вычисляться значение
Опять каждое сравнение должно быть сделано отдельно
Использование оператора in является каноническим способом написать это.
Python if..elif..else in one line
Now as I told this earlier, it is not possible to use in one line using ternary expressions. Although we can hack our way into this but make sure the maximum allowed length of a line in Python is 79 as per
Syntax
We have this where we return expression based on the condition check:
Advertisement
if condition1: expr1 elif condition2: expr2 else: expr
We can write this in one-line using this syntax:
expr1 if condition1 else expr2 if condition2 else expr
In this syntax,
- First of all is evaluated, if return then is returned
- If returns then is evaluated, if return then is returned
- If also returns then else is executed and is returned
As you see, it was easier if we read this in multi-line while the same becomes hard to understand for beginners.
We can add multiple in this syntax, but we must also adhere to PEP-8 guidelines
expr1 if condition1 else expr2 if condition2 else expr-n if condition-n else expr
Python Script Example-1
In this sample script we collect an integer value from end user and store it in ““. The order of execution would be:
- If the value of is less than then “” is returned
- If the value of is greater than then “” is returned.
- If both the condition return , then “” is returned
#!/usr/bin/env python3 b = int(input("Enter value for b: ")) a = "neg" if b < else "pos" if b > else "zero" print(a)
The multi-line form of the code would be:
#!/usr/bin/env python3 b = int(input("Enter value for b: ")) if b < : a = "neg" elif b > : a = "pos" else: zero print(a)
Output(when condition is )
# python3 /tmp/if_else_one_line.py Enter value for b: -5 neg
Output(when condition is and condition is )
Advertisement
# python3 /tmp/if_else_one_line.py Enter value for b: 5 pos
Output(when both and condition are )
# python3 /tmp/if_else_one_line.py Enter value for b: 0 zero
Python script Example-2
We will add some more else blocks in this sample script, the order of the check would be in below sequence:
- Collect user input for value which will be converted to integer type
- If value of is equal to 100 then return ““, If this returns then next condition would be executed
- If value of is equal to 50 then return ““, If this returns then next condition would be executed
- If value of is equal to 40 then return ““, If this returns then next condition would be executed
- If value of is greater than 100 then return ““, If this returns then next go to block
- Lastly if all the condition return then return ““
#!/usr/bin/env python3 b = int(input("Enter value for b: ")) a = "equal to 100" if b == 100 else "equal to 50" if b == 50 else "equal to 40" if b == 40 else "greater than 100" if b > 100 else "less than 100" print(a)
The multi-line form of this example would be:
#!/usr/bin/env python3 b = int(input("Enter value for b: ")) if b == 100: a = "equal to 100" elif b == 50: a = "equal to 50" elif b == 40: a = "equal to 40" elif b > 100: a = "greater than 100" else: a = "less than 100" print(a)
Output:
# python3 /tmp/if_else_one_line.py Enter value for b: 50 equal to 50 # python3 /tmp/if_else_one_line.py Enter value for b: 110 greater than 100 # python3 /tmp/if_else_one_line.py Enter value for b: -12 less than 100 # python3 /tmp/if_else_one_line.py Enter value for b: 40 equal to 40
Оператор if в Python
Самая простая форма оператора в Python выглядит следующим образом:
Оператор начинается с ключевого слова за которым следует условное выражение.
должно сопровождаться ( ) толстой кишки. Если оценивается как , выполняется . Если возвращает , ничего не происходит, игнорируется. может быть любым оператором, включая несколько операторов или дополнительных вложенных операторов . Чтобы не выполнять никаких инструкций, используйте инструкцию .
Давайте посмотрим на следующий пример скрипта, который проверяет, больше ли заданное число 5.
Сохраните код в файл и запустите его из командной строки:
Скрипт предложит вам ввести номер. Например, если вы введете 10, условное выражение будет иметь значение (10 больше 5), и функция будет выполнена.
Python поддерживает стандартные операции сравнения:
- — Истинно, если и равны.
- — Верно, если и не равны.
- — Истинно, если больше .
- — Истинно, если равно или больше .
- — Истинно, если меньше .
- — Истинно, если равно или меньше .
Вот еще один пример использования словаря:
При использовании в словаре ключевое слово проверяет, есть ли в словаре определенный ключ.
Чтобы отрицать условное выражение, используйте логический оператор :
Условный оператор if/elif/else, ветвление кода программы.
Возможно, самый известный тип инструкций — это конструкция . Часто возникает необходимость, чтобы некоторый код выполнялся только при соблюдении определенного условия или код подлежащий выполнению, должен выбираться исходя из выполнения одного из нескольких взаимоисключающих условий.Например:
>>> x = int(input("Please enter an integer: ")) # Please enter an integer: 42 >>> if x < ... x = ... print('Negative changed to zero') ... elif x == ... print('Zero') ... elif x == 1 ... print('Single') ... else ... print('More') # More
Ключевое слово является сокращением от . Инструкции и могут отсутствовать и не являются обязательными. Инструкция может повторяться сколько угодно раз . Такая последовательность инструкций является заменой для конструкции или , которые есть в других языках программирования.
Составная инструкция , и обеспечивает условное выполнение блоков инструкций.Она имеет следующий синтаксис:
if выражение: блок кода elif выражение: блок кода elif выражение: блок кода ... ... else: блок кода
Конструкция вычисляет и оценивает выражения одно за другим, пока одно из них не окажется истинным, затем выполняется соответствующий блок кода . После выполнения блока кода первого истинного () выражения, последующие инструкции / не вычисляются и не оцениваются, а блоки кода в них не выполняется. Если все выражения ложны (), выполняется блок кода инструкции , если он присутствует.
В предложениях и в качестве условия можно использовать любое выражение Python. В подобных случаях говорят, что условие используется в логическом контексте. В логическом контексте любое выражение рассматривается как истинное или ложное. Любое ненулевое число или любой непустой контейнер (строка, кортеж, список, словарь, множество) расценивается как истинное значение. Нуль (любого числового типа), и пустой контейнер расцениваются как ложные значения. Для тестирования значения в логическом контекстеиспользуйте следующий стиль написания кода:
if x
Это наиболее ясная и соответствующая духу Python форма кода.
Примеры конструкций
Использование в конструкции :
a = None if a is not None print('a НЕ равно None') else print('a равно None')
Использование и в конструкции :
bul = False if bul print('bul = True') else print('bul = False')
Использование числа 0 в конструкции :
number = if number print('number не равно 0') else print('number = 0')
Использование числовых сравнений в конструкции :
a = 10 b = 20 if a != b and a > b print('a не равно b и a больше b') else print('a не равно b и a меньше b')
Вложенные конструкции :
a = 15 b = 3 if a != b if a > b print('a больше b') else print('a меньше b') else print('a равно b')
Проверка наличия слова в строке с помощью конструкции :
string1 = 'Привет мир' string2 = 'мир' if string2 in string1 print('Слово "мир" присутствует в строке "Привет мир"') else print('Слово "мир" отсутствует в строке "Привет мир"')
Проверка вхождения элемента в список с помощью конструкции :
a = 'bc' lst = list'ac', 'bc', , 1, 3, 'abc' if a in lst print('Значение "bc" входит в список', lst) else print('Значение "bc" не входит в список', lst)
Проверка вхождения элемента в кортеж с помощью конструкции :
a = 'bc' tpl = tuple('ac', 'bc', , 1, 3, 'abc') if a in tpl print('Значение "bc" входит в кортеж', tpl) else print('Значение "bc" не входит в кортеж', tpl)
Проверка вхождения элемента в множество с помощью конструкции :
a = 'bc' set_ = set'ac', 'bc', , 1, 3, 'abc' if a in set_ print('Значение "bc" входит в множество', set_) else print('Значение "bc" не входит в множество', set_)
Проверка наличия ключа в словаре с помощью конструкции :
key = 'bc' dct = dict('ac'None, 'bc'False, '0', '1'3, '3'1, 'abc'True if key in dct print('Ключ "bc" присутствует в словаре', dct) else print('Ключ "bc" отсутствует в словаре', dct)
What is the Python if else statement?
The Python statement is an extended version of the statement. While the Python statement adds the decision-making logic to the programming language, the statement adds one more layer on top of it.
Both of them are conditional statements that check whether a certain case is true or false. If the result is true, they will run the specified command. However, they perform different actions when the set condition is false.
When an statement inspects a case that meets the criteria, the statement will execute the set command. Otherwise, it will do nothing. Look at this basic example of Python if statement:
Example Copy
Meanwhile, the statement will execute another specified action if it fails to meet the first condition.
Simply put, the statement decides this: if something is true, do something; if something is not true, then do something else.
Python list comprehension transposes rows and columns
Here, we can see list comprehension transposes rows and columns in Python.
- In this example, I have taken a list as list = ] and to transpose this matrix into rows and columns. I have used for loop for iteration.
- I have taken matrix = for row in list] for i in range(4)] and range is given up to 4.
- To get the matrix output, I have used print(matrix).
Example:
We can see the four matrices as the output in the below screenshot.
Python list comprehension transposes rows and columns
You may like the following Python tutorials:
- Python Tkinter Stopwatch
- Python read a binary file
- How to draw a shape in python using Turtle
- How to Convert Python string to byte array
- Python ask for user input
- Python select from a list
- Python pass by reference or value with examples
- Python list comprehension lambda
In this tutorial, we have learned about Python list comprehension using if-else, and also we have covered these topics:
- Python list comprehension using if statement
- Python list comprehension using if without else
- Python list comprehension using nested if statement
- Python list comprehension using multiple if statement
- Python list comprehension with if-else
- Python list comprehension using nested for loop
- Python list comprehension transposes rows and columns
A common if else use in Python
Python statement is widely used for sorting comparisons of operators: greater than, less than, equal to, greater than or equal to, less than or equal to, etc.
Let’s say you want to evaluate some examination results. You want to automatically convert the score numbers into letters. The code would look like this:
Example Copy
- The function will output A if the score is greater than or equal to 85.
- If the score is greater than or equal to 75, it will output B.
- It will display C if the score is greater than 50.
- D will be shown if the score is equal to 50.
- If the score is less than 50, the function will print that the student did not pass his/her exam.
Python if else Command Example
The following example shows how to use if..else command in Python.
# cat if4.py days = int(input("How many days are in March?: ")) if days == 31: print("You passed the test.") else: print("You failed the test.") print("Thank You!")
In the above example:
- 1st line: Here, we are asking for user input. The input will be an integer, which will be stored in the variable days.
- 2nd line: This is the if command, where we are comparing whether the value of the variable days is equal to the numerical value 31. The colon at the end is part of the if command syntax, which should be given.
- 3rd line: This line starts with two space indent at the beginning. Any line (one or more) that follows the if statement, which has similar indentation at the beginning is considered part of the if statement block true condition.
- 4th line: This has the else keyword for this if block. The colon at the end is part of the if..else command syntax, which should be given.
- 5th line: This line starts with two space indent at the beginning. Any line (one or more) that follows the else statement, which has similar indentation at the beginning is considered part of the if statement block false condition.
- 6th line: This line is outside the if statement block. So, this will get executed whether the if statement is true or false.
The following example is also similar to above example, but this if..else uses string variable for comparision.
# cat if5.py code = raw_input("What is the 2-letter state code for California?: ") if code == 'CA': print("You passed the test.") else: print("You failed the test.") print("Thank You!")
The following is the output of the above examples, when the if statement condition is false. i.e The else block will get executed here.
# python if4.py How many days are in March?: 30 You failed the test. Thank You! # python if5.py What is the 2-letter state code for California?: NV You failed the test. Thank You!
What are if elif else statement in Python?
This is a Decision-making statement in python programming. Which is used to execute code only if a certain condition is fulfilled?
Python if Statement
In Python, If Statement is used for decision making. It will execute the block of code only when the IF statement is true.
Example of python if statement
num = 5 if num > 0: print(num, "is a positive number.") print("This is always printed.") num = -5 if num > 0: print(num, "is a positive number.") print("This is also always printed.")
Explanation of the above program
In the above example, num > 0 is the test condition. The group of code is executed only if the test condition is met True.
In the first test condition, When a variable num is greater than zero than the test condition met true and execute a block of code.
In the second test condition, If variable num is equal to -5, the test condition is false and the block of code is not executed, or skipped.
Python if…else Statement
In the If..else statement, the condition test is first of all. If the condition is found to be true, the code inside the if the statement is executed. The code inside the other else statement is executed.
Example of python if…else statement
num = 4 if num%2 == 0: print("This is even number") else: print("This is odd number")
Explanation of the above program
We have created a program above that is using the if … else statement.
We have created this program to check even and odd numbers. If the number given in the test condition is even, then the message of “This is even number” will be printed. The message of “This is odd number” will be printed
Python if..elif..else Statement
This statement first tests the condition of if statement. If the condition of if the statement is false. Then the condition test of the elif statement is done. And if the condition of elif statement is also false, then the code inside the else statement is executable.
Example of python if…else statement
num = int(input('Enter a number: ')) if num > 0: print("Positive number") elif num == 0: print("Zero") else: print("Negative number")
Explanation of the above program
In this program, we have taken input from the user.
When the number the user will input is greater than 5, then the code for inside if statement will be execute.
Whne the number the user will input will be greater than 10 or equal to 10 , then the code of the elif statement will be executed.
If both the statement are false, then the code of else statement will be execute.
Python Nested if statements
Nested if statement in python, it means that you can write recursively the if statement even if within the condition.
python if statement multiple conditions examples
num = float(input("Enter a number: ")) if num >= 0: if num == 0: print("Zero") else: print("Positive number") else: print("Negative number")
Explanation of the above program
In this program, we have taken input from the user.
If the number the user will input is greater than 0, then the code for inside if statement will be execute.
after that again, if statement will execute with else statment according to given test condition.
If, the first if statement false, then the else statement will be inside the statement.
Python Compound If Statement Example
The following example shows how you can use compound conditional commands in the if statement.
# cat if7.py a = int(input("Enter a: ")) b = int(input("Enter b: ")) c = int(input("Enter c: ")) if a < b < c: print("Success. a < b < c")
In the above:
The print block will get executed only when the if condition is true. Here, we are using a compound expression for the if statement where it will be true only when a is less than b and b is less than c.
The following is the output when if condition becomes true.
# python if7.py Enter a: 10 Enter b: 20 Enter c: 30 Success. a < b < c
The following is the output when if condition becomes false.
# python if7.py Enter a: 10 Enter b: 10 Enter c: 20
What is if…else statement in Python?
Decision making is required when we want to execute a code only if a certain condition is satisfied.
The statement is used in Python for decision making.
Python if Statement Syntax
if test expression: statement(s)
Here, the program evaluates the and will execute statement(s) only if the test expression is .
If the test expression is , the statement(s) is not executed.
In Python, the body of the statement is indicated by the indentation. The body starts with an indentation and the first unindented line marks the end.
Python interprets non-zero values as . and are interpreted as .
Example: Python if Statement
When you run the program, the output will be:
3 is a positive number This is always printed This is also always printed.
In the above example, is the test expression.
The body of is executed only if this evaluates to .
When the variable num is equal to 3, test expression is true and statements inside the body of are executed.
If the variable num is equal to -1, test expression is false and statements inside the body of are skipped.
The statement falls outside of the block (unindented). Hence, it is executed regardless of the test expression.
Операторы препроцессора
defined
Определяемый Оператор препроцессора можно использовать в специальных константных выражениях, как показано в следующем синтаксисе:
Это константное выражение считается истинным (ненулевым), если идентификатор в настоящее время определен. В противном случае условие не выполняется (false, значение равно 0). Идентификатор, определенный как пустой текст, считается определенным. Определенный оператор может использоваться в #if и директиве #elif , но нигде не используется.
В следующем примере директивы #if и #endif управляют компиляцией одного из трех вызовов функций:
Вызов функции компилируется, если определен идентификатор . Если определен идентификатор , компилируется вызов функции . Если ни один из этих идентификаторов не определен, компилируется вызов функции . И , и — это разные идентификаторы в C и C++, так как их варианты различны.
В следующем примере в операторах условной компиляции используется ранее определенная символьная константа с именем .
В первом блоке #if показаны два набора вложенных директив #if, #else и #endif . Первый набор директив обрабатывается только в том случае, если выполняется условие . В противном случае обрабатываются инструкции после #else .
Директивы #elif и #else во втором примере используются, чтобы выбрать один из четырех вариантов в зависимости от значения . Константе присваивается значение 0, 100 или 200 в зависимости от определения константы . Если больше 5, то компилируется оператор
компилируется и не определяется.
Условная компиляция обычно используется для предотвращения нескольких включений одного и того же файла заголовка. В C++, где классы часто определяются в файлах заголовков, такие конструкции можно использовать для предотвращения нескольких определений:
Предыдущий код проверяет, определена ли символьная константа . Если да, то файл уже включен и не нуждается в повторной обработке. Если нет, константа определяется, чтобы пометить файл EXAMPLE.H как уже обработанный.