C#: Конструкция else if
В самой полной версии, конструкция if содержит не только ветку else, но и другие условные проверки с помощью else if. Такой вариант используется при большом количестве проверок, которые взаимоисключают друг друга.
if (/* что-то */)
{
}
else if (/* другая проверка */)
{
}
else if (/* другая проверка */)
{
}
else
{
}
Два момента. Ветка else может отсутствовать. Количество else if условий может быть любым, хоть одно, хоть десять.
Напишем для примера расширенный метод определяющий тип предложения. Он распознает три вида предложений:
class App
{
public static string GetTypeOfSentence(string sentence)
{
var sentenceType = "";
if (sentence.EndsWith('?'))
{
sentenceType = "question";
}
else if (sentence.EndsWith('!'))
{
sentenceType = "exclamation";
}
else
{
sentenceType = "general";
}
return "Sentence is " + sentenceType;
}
}
App.GetTypeOfSentence("Who?"); // "Sentence is question"
App.GetTypeOfSentence("No"); // "Sentence is general"
App.GetTypeOfSentence("No!"); // "Sentence is exclamation"
Теперь все условия выстроены в единую конструкцию. else if — это «если не выполнено предыдущее условие, но выполнено текущее». Получается такая схема:
- если последний символ
?, то"question" - иначе, если последний символ
!, то"exclamation" - иначе
"general"
Выполнится только один из блоков кода, относящихся ко всей конструкции if.
Задание
На электронной карте Вестероса, которую реализовал Сэм, союзники Старков отображены зеленым кружком, враги — красным, а нейтральные семьи — серым.
Напишите для Сэма метод WhoIsThisHouseToStarks(), который принимает на вход фамилию семьи и возвращает одно из трех значений: "friend", "enemy", "neutral".
Правила определения:
- Друзья (
"friend"): "Karstark", "Tally" - Враги (
"enemy"): "Lannister", "Frey" - Любые другие семьи считаются нейтральными
Примеры вызова:
App.WhoIsThisHouseToStarks("Karstark"); // "friend"
App.WhoIsThisHouseToStarks("Frey"); // "enemy"
App.WhoIsThisHouseToStarks("Joar"); // "neutral"
App.WhoIsThisHouseToStarks("Ivanov"); // "neutral"
Определения
else if — способ задать несколько альтернативных условий
