- •Тема 5. Оператори розгалуження та цикли у c#.
- •1. Оператори розгалуження.
- •1: Static void Main(string[] args)
- •1: If(умова)
- •4: Інструкція;
- •7: Інструкція;
- •11: Інструкція;
- •1: Static void Main(string[] args)
- •1: Static void Main(string[] args)
- •1: Static void Main(string[] args)
- •2. Оператори циклу.
- •3: Інструкція;
- •1: Static void Main(string[] args)
- •1: Static void Main(string[] args)
- •3: Інструкція;
1: Static void Main(string[] args)
2: {
3: Console.Write("Введіть цілу цифру - ");
4: int a = Convert.ToInt32(Console.ReadLine());
5: int absval = (a > 0) ? a : -a;
6: Console.WriteLine("ABS: {0}", absval);
7: }
Увага! Щоб знайти модуль числа можна скористатися фугкцією Math.Abs(значення):
int absval = Math.Abs(a).
2. Оператори циклу.
У C# існують 4 оператори циклу:
for
while
do-while
foreach
ЦИКЛ FOR
Загальний формат запису циклу for для повторного виконання однієї інструкції має наступний вигляд:
1: for(ініціалізація; умова; ітерація)
2: {
3: Інструкція;
4: }
Задача 1. Знайти суму усіх цілих чисел від 1 до 10 включно:
Приклад 7. Розв'язання задачі 1.
1: int sum = 0;
2: for (int i = 1; i <= 10; ++i)
3: sum += i;
Задача . Знайти суму та добуток чисел від 1 до 10 включно:
Приклад 8. Розв'язання задачі 2.
1: int sum = 0;
2: int dob = 1;
3: for (int i = 1; i <= 10; ++i)
4: {
5: sum += i;
6: dob *= i;
7: }
Елемент ініціалізація зазвичай є інструкцією присвоєння яка встановлює значення змінної, що управляє циклом. Ця змінна працює як лічильник, який управляє роботою циклу.
Елемент умова є виразом типу bool, в якому тестується значення змінної, що управляє циклом. Результат цього тестування визначає виконається цикл for ще раз чи ні. Елемент ітерація - це вираз, який визначає, як змінюється значення змінної, що управляє циклом, після кожної ітерації. Зверніть увагу на те, що всі ці елементи циклу for повинні розділятися крапкою з комою.
Цикл for виконуватиметься до тих пір, поки обчислення елементу умова дає істинний результат. Як тільки умова стане хибною, виконання програми продовжиться з інструкції, наступної за циклом for.
Змінна, що управляє циклом, може змінюватися як з позитивним, так і з негативним приростом, причому величина цього приросту також може бути будь-якою. Наприклад, наступна програма виводить числа в діапазоні від 50 до - 50 з декрементом, рівним 5.
Приклад 9. Використання циклу for.
1: for(int i = 50; i > -50; i-=5)
2: Console.WriteLine(i);
У циклі for управляючих змінних, умов або ітерацій може бути кілька, або може не бути взагалі.
Приклад 10. Використання циклу for.
1: Static void Main(string[] args)
2: {
3: for(int i = 0, j = 2; i < 10 && j < 5; j++, i+=2)
4: Console.WriteLine("i = {0}, j = {1}", i, j);
5: }
Рис. 1. Результат виконання прикладу 10.
Приклад 11. Використання циклу for.
1: Static void Main(string[] args)
2: {
3: for (int i = 0; ; )
4: {
5: i++;
6: Console.Write(" {0} ", i);
7: if (i == 5)
8: break;
9: }
10: }
Рис. 2. Результат виконання прикладу 11.
Також існує варіант коли цикл може не мати тіла. Таким чином усі операції виконуються у блоці ітерація. Розв’яжемо ту ж саму задачу про знаходження суми від 1 до 10.
Приклад 12. Цикл for без тіла.
1: int sum = 0;
2: for (int i = 1; i <= 10; sum += i++);
ЦИКЛ WHILE
Цикл while є універсальним виглядом циклу, що включається у всі мови програмування. Тіло циклу виконується до тих пір, поки залишається істинною умова while. У мові C# у циклу while дві модифікації - з перевіркою умови на початку і в кінці циклу. Перша модифікація має наступний синтаксис:
while(вираз) інструкції;
Ця модифікація відповідає стратегії: "спочатку перевір, а потім роби". В результаті перевірки може виявитися, що і робити нічого не потрібно. Тіло такого циклу може жодного разу не виконуватися. Звичайно ж, можливо і зациклення. У нормальній ситуації кожне виконання тіла циклу - це черговий крок до завершення циклу.
Цикл, перевіряючий умову завершення в кінці, відповідає стратегії: "спочатку роби, а потім перевір". Тіло такого циклу виконується, щонайменше, один раз. Ось синтаксис цієї модифікації:
1: do
2: {