Loading...
NikolayLiubomirov avatar NikolayLiubomirov 82 Точки

Как да изберем правилната условна конструкция (if-else, if-else if или if if)?

Малко съм объркан коя условна конструкция да ползвам в даден случай, понеже обикновено имам три избора (като не включваме switch case). Да вземем за пример първа задача от 4та тема - Complex Conditions. Ето част от възможните избори:

1. If-else (Може би в този случай е малко по-трудно за четене?)

if (gender == "m")
{
    if (age >= 16) { Console.WriteLine("Mr."); }
    else { Console.WriteLine("Master"); }
}
else
{
    if (age >= 16) { Console.WriteLine("Ms.");
    else { Console.WriteLine("Miss"); }
}

2. if-else if (Тук може би се "подсигуряваме"?)

if (gender == "m")
{
    if (age >= 16) { Console.WriteLine("Mr."); }
    else if (age < 16) { Console.WriteLine("Master"); }
}
else if (gender == "f")
{
    if (age >= 16) { Console.WriteLine("Ms."); }
    else if (age < 16) { Console.WriteLine("Miss"); }
}

3. if-if (Това пък въобще не ми харесва laugh)

if (gender == "m")
{
    if (age >= 16) { Console.WriteLine("Mr."); }
    if (age < 16) { Console.WriteLine("Master"); }
}
if (gender == "f")
{
    if (age >= 16) { Console.WriteLine("Ms."); }
    if (age < 16) { Console.WriteLine("Miss"); }
}

Да не говорим пък и за комбинации и от тези варианти... Ще се радвам някой да се опита да ми обясни кога, коя връзка да използвам или е абсолютно без никакво значение?

Тагове:
0
Programming Basics 18/03/2017 19:22:20
AlucardDracula avatar AlucardDracula 416 Точки
if (gender == "m")
{
    if (age >= 16) { Console.WriteLine("Mr."); }
    else { Console.WriteLine("Master"); }
}
else
{
    if (age >= 16) { Console.WriteLine("Ms.");
    else { Console.WriteLine("Miss"); }
}

1. тука казваме че gender ако е "m" направи това вътре в if-a, ако не това в else-a.

if (gender == "m")
{
    if (age >= 16) { Console.WriteLine("Mr."); }
    else if (age < 16) { Console.WriteLine("Master"); }
}
else if (gender == "f")
{
    if (age >= 16) { Console.WriteLine("Ms."); }
    else if (age < 16) { Console.WriteLine("Miss"); }
}

2 .тука също като по-горния, но разликата е там, че ако следващия else if е грешно т.е. gender не е "f" то просто ще подмине else if-а и няма да направи нищо 

if (gender == "m")
{
    if (age >= 16) { Console.WriteLine("Mr."); }
    if (age < 16) { Console.WriteLine("Master"); }
}
if (gender == "f")
{
    if (age >= 16) { Console.WriteLine("Ms."); }
    if (age < 16) { Console.WriteLine("Miss"); }
}

3. за разлика от по-горните тука имаме 2 различни if-а ! различниса щото ако първия if е правилно програмата ни ще изпълни тоя код след като го изпълни ще стигне на 2рия if и тъй като условието може да е грешно може да го подмине, но проблема е там че ако кажем пак т.е ако кода ни изглежда така:

if (gender == "m")
{
    if (age >= 16) { Console.WriteLine("Mr."); }
    if (age < 16) { Console.WriteLine("Master"); }
}
if (gender == "m")
{
    if (age >= 16) { Console.WriteLine("Ms."); }
    if (age < 16) { Console.WriteLine("Miss"); }
}

тогава то ще влезне и в първия и във втория if, а при някои задачи това може да даде грешка, а при някои да помогне, зависи от условието на задачата :)

 

А за това какво е най-удачно за тази задача е 1., защото имаме само 2 пола - мъжки/женски, разбира се ако не броим и допънителните придобити :) :D

1
05/02/2017 01:52:07
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.