
7 Іван Хвищун Курс “Кросплатформне програмування”. Лабораторна робота № 2 for fei-II 2014 Вивчення операторів розгалужень та циклів Основні структури мови с#
Кожна мова програмування має спеціальні структури такі, як структура вибору і структура повторення. Доведено, що за допомогою тільки цих структур можна написати будь-яку програму або реалізувати будь-який алгоритм. У всіх мовах програмування оператори, що реалізовують ці структури, схожі між собою по синтаксису, але разом з тим є і відмінності. Розглянемо, як реалізовані ці структури в С#.
Структури вибору
С# підтримує дві структури вибору, це конструкція if і конструкція switch. Завдяки цим двом операторам можливо реалізовувати розгалуження в програмах.
Умова if...Синтаксис цієї конструкції:
If (лог. Вираз)
{ <блок 1>;}
else
{ <блок 2>; }
лог. вираз, що в дужках, повертає значення true або false, тобто значення типу boolean. Якщо вираз істиний, то виконуються оператори, які є у <блоці 1>, якщо вираз помилковий, то виконуються оператори, що є у <блоці 2>.
Оператора if можна використовувати і без оператора else:
If (лог вираз)
{ <блок 1>; }
В цьому випадку виконуються оператори, що є у <блоці 1>, якщо вираз істиний. Якщо ж вираз помилковий, то оператори <блоку 1> не виконуються.
Розглянемо приклад.
using System;
class Comparestring
{
public static void Main()
{
Console.WriteLine("Input first string:");
string firstString = Conole.ReadLine();
Console.WriteLine("Input second string:")
string secondString=Console.ReadLine();
If (firstString.Equals (secondString))
{
Console.WriteLine ("First string is equals second string");
}
else
{
Console.WriteLine("First string is not equals second string");
}
}
}
Приклад, який наведено вище, демонструє роботу оператора if. Користувач вводить з клавіатури 2 рядки, і якщо вони рівні, то користувачеві виводиться повідомлення про рівність цих рядків, інакше виводиться повідомлення про нерівність рядків. У випадку, якщо в блоці if всього один рядок коду, то фігурні дужки можна не ставити, хоча це і є поганим стилем програмування.
Так, два приклади нижче еквівалентні:
if (x==0) //приклад 1
{
х=х+10;
}
if (x==0) //приклад 2
х=х+10;
Якщо необхідно зробити вибір більш ніж між двома варіантами, то існує складніша версія умови if з множинним вибором. Для побудови таких конструкцій використовується вираз else if.
if (x < 0)
{ х = х + 10; }
else if (x > 10)
{ x = х - 10; }
else
{ x = 5; }
У даному прикладі відбувається перевірка умови в першому if, і якщо умова істина, то виконується код х = х + 10, після чого здійснюється перехід на оператора, наступного за всім блоком if. У випадку, якщо перша умова помилкова, перевіряється умова в другому блоці if, і якщо воно повертає значення true, то виконується код х = х - 10. Якщо жодна з умов не повернула значення true, то перехід здійснюється в блок else. Важливим є те, що після виконання операторів в одному з блоків оператора if програма переходить відразу на оператор, який є наступним за if, навіть якщо умови в нижчестоячих блоках цього оператора істинні.
Структури if можуть бути вкладені один в одного:
if (x<10)
{
if (y<5)
{
y=y+х;
}
else
{
y=y-х;
}
Відзначимо, що, на відміну від мови C++, тип int не приводиться автоматично до типу boolean, тому ми не можемо використовувати конструкцію, допустиму в C++:
int i=0;
. . . .