Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_2_C#.doc
Скачиваний:
14
Добавлен:
12.02.2016
Размер:
753.66 Кб
Скачать

1.4. Інструкція switсh

Другою інструкцією вибору є switch. Інструкція switch забезпечує багатонаправлене розгалуження. Вона дозволяє проводити перевірку для багатьох значень змінної за один прохід замість того щоб перевіряти лише одну умову як у випадку з оператором if. Хоча багатонаправлене тестування можна реалізувати за допомогою послідовності вкладених if-інструкцій, для багатьох ситуацій інструкція switch виявляється більш ефективним розв’язком поставленої задачі. Вона працює наступним чином. Значення виразу послідовно порівнюється з константами із заданого списку. При виявленні збігу для однієї з умов порівняння виконується послідовність інструкцій, пов'язана з цією умовою. Загальний формат запису інструкції switch такий:

switch (вираз) {

case константа1:

послідовність інструкцій

break;

case константа2:

послідовність інструкцій

break;

case константаЗ:

послідовність інструкцій

break;

default:

послідовність інструкцій

break;

}

Елемент вираз інструкції switch повинен мати цілочисельний тип (наприклад, char, byte, short або int ) або тип string. Вирази, що мають тип з плаваючою крапкою, не дозволені. Дуже часто в якості керуючого switch-виразу використовується просто змінна;

case-константи повинні бути літералами, тип яких сумісний з типом заданого виразу. При цьому ніякі дві case-константи в одній switch-інструкції не можуть мати ідентичних значень.

Кожна case конструкція повинна закінчуватись оператором break (або якою-небудь іншою командою виходу, наприклад return). Оператор break передає керування за межі конструкції switch.

Послідовність інструкцій default-гілки виконується в тому випадку, якщо жодна із заданих case-констант не співпаде з результатом обчислення switch-виразу. Гілка default необов'язкова. Якщо вона відсутня, то при неспівпадінні результату виразу не буде виконана жодна дія жодної з case-констант. Якщо такий збіг все ж таки буде, то виконуватимуться інструкції відповідні даній case-гілці до тих пір, поки не зустрінеться інструкція break.

Оператори switch не мають обмежень на кількість розділів case, які будуть в них міститись.

1.5. Цикли

Цикл – це частина коду, в якому оператори виконуються по декілька разів. Такий спосіб в багатьох випадках є дуже зручним, оскільки дозволяє повторювати необхідні дії стільки разів, скільки потрібно, без необхідності переписувати відповідний код таку ж кількість разів.

1.5.1. Цикл for

Він відноситься до того типу циклів, які виконуються наперед задану кількість разів і самі відповідають за організацію лічильника циклу.

Загальний формат запису циклу for для повторного виконання однієї інструкції має наступний вигляд:

for{ініціалізація; умова; ітерація) інструкція;

Якщо цикл for призначений для повторного виконання програмного блоку, то його загальний формат виглядає так:

for{ініціалізація; умова; ітерація)

{

послідовність інструкцій

}

Елемент ініціалізація звичайно являє собою інструкцію присвоєння яка встановлює керуючу змінну циклу рівну початковому значенню.

Ця змінна діє як лічильник, який керує роботою циклу.

Елемент умова являє собою вираз типу bool, в якому тестується значення керуючої змінної циклу. Результат цього тестування визначає виконається цикл for ще раз або ні. Елемент ітерація —- це вираз, який визначає, як змінюється значення керуючої змінної циклу після кожної ітерації. Зверніть увагу на те, що всі ці елементи циклу for повинні відділятися крапкою з комою. Цикл for буде виконуватися до тих пір, поки обчислення елемента умова дає істинний результат. Як тільки умова стане помилковою, виконання програми продовжиться з інструкції, наступної за циклом for.

Керуюча змінна циклу for може змінюватися як з позитивним, так і з негативним приростом, причому величина цього приросту також може бути довільною.

Важливо розуміти, що умовний вираз завжди тестується на початку виконання циклу for. Це значить, що якщо перша ж перевірка умови дасть значення Хибність код тіла циклу не виконається жодного разу. Ось приклад:

|for(а=15; а < 10; а++)

х += а; // Ця інструкція не буде виконана зовсім.

Цей цикл ніколи не виконається, оскільки вже при вході в нього значення його керуючої змінної а більше десяти. Це робить умовний вираз (а < 10) помилковим із самого початку. Тому навіть одна ітерація цього циклу не буде виконана.

Цикл for особливо корисний в тих випадках, коли відома кількість його повторень.

Можливі наступні варіанти на тему циклу for

Використання декількох керуючих змінних циклу

Для управління циклом for можна використовувати дві або більше змінних. У цьому випадку інструкції ініціалізації і ітерації для кожної з цих змінних відокремлюються комами. Наприклад:

// Використання ком в циклі for.

using System;

class Comma {

public static void Main() {

int i, j ;

for(i=0, j=10; i < j; i++, j—)

Console.WriteLine("i і j: " + i + " " + j);

От як виглядають результати виконання цієї програми:

i і j: 0 10

i і j: 1 9

i і j: 2 8

i і j: 3 7

i і j: 4 6

Тут комами відділяються дві інструкції ініціалізації і два ітераційних вирази. При вході в цикл ініціалізувалися обидві змінні — i і j . Після виконання кожної ітерації циклу змінна i інкрементується, а змінна j декрементуєтся. Використання декількох керуючих змінних в циклі іноді дозволяє спростити алгоритми. В розділах ініціалізації і ітерації циклу for можна використовувати будь-яку кількість інструкцій, але звичайно їхнє число не перевищує дві.

Умовний вираз

Умовним виразом, який управляє циклом for, може бути довільний допустимий вираз, що генерує результат типу bool.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]