Видео: Уроки C# – if, else if, else, DEBUG – Урок 6 2024
При использовании R иногда вам нужна ваша функция, чтобы что-то делать, если условие истинно и что-то еще, если оно Нет. Вы можете сделать это с помощью двух операторов if, но есть более простой способ в R: if if … else. Оператор if … else содержит те же элементы, что и оператор if (см. предыдущий раздел), а затем некоторые дополнительные:
-
Ключевое слово else, помещенное после первого кодового блока
-
Второй блок кода, содержащийся в фигурных скобках, который должен выполняться тогда и только тогда, когда результат условие в выражении if () FALSE
В некоторых странах размер налога на добавленную стоимость (НДС), который должен быть оплачен, зависит от того, является ли клиент публичной или частной организацией. Представьте, что общественные организации должны платить только 6% НДС и частные организации должны платить 12% НДС. Вы можете добавить дополнительный аргумент в функцию priceCalculator () и принять его следующим образом, чтобы добавить правильную сумму НДС:
если (часы> 100) нетто. цена <- сеть. цена * 0. 9 если (публичный) {tot. цена <- сеть. цена * 1. 06} else {tot. цена <- сеть. цена * 1. 12} round (общая цена)}
Если вы отправляете этот код на консоль, вы можете протестировать эту функцию. Например, если вы проработали 25 часов, следующий код дает вам различные суммы, взимаемые за государственные и частные организации, соответственно: >> priceCalculator (25, public = TRUE) [1] 1060> priceCalculator (25, public = FALSE) [1] 1120
Это хорошо работает, но как это работает?
Оператор if требует логического значения между круглыми скобками. Любое выражение, которое вы помещаете между круглыми скобками, вычисляется до того, как оно будет передано в оператор if. Итак, если вы работаете с логическим значением напрямую, вам не нужно указывать выражение вообще. Использование, например, if (public == TRUE) избыточно.
if (public) tot. цена <- сеть. цена * 1. 06 else tot. цена <- сеть. price * 1. 12
Полагая инструкцию else в конце строки, а не в начале следующего, это хорошая идея.
внутри функции , и вы сразу же отправляете полный файл R. Но вы можете сделать это короче. Оператор if работает как функция и, следовательно, он также возвращает значение. В результате вы можете присвоить это значение объекту или использовать его в вычислениях. Итак, вместо пересчета чистой. цена и присвоение результата tot. цена внутри кодовых блоков, вы можете использовать оператор if … else следующим образом:
R сначала оценит оператор if … else и умножит результат по сети. цена. Результат этого затем присваивается tot. цена. Это не отличается от iota от результата пяти строк кода, которые мы использовали для исходного if … else.