Оператори break, continue, goto. Приклади застосування
Зміст
- 1. Оператор break. Призначення
- 2. Оператор continue. Призначення
- 3. Оператор goto. Призначення
- 4. Приклади програм з використанням оператора break
- 5. Приклади програм з використанням оператора continue
- 6. Приклади програм з використанням оператора goto
- Зв’язані теми
Пошук на інших ресурсах:
1. Оператор break. Призначення
У мові C# оператор break має два основні напрямки застосування:
- в операторах циклу оператор break використовується для завершення циклічного процесу (переривання роботи циклу). Така дія необхіна, коли потрібно перервати виконання циклу в залежності від деякої умови;
- в операторі вибору switch застосування оператора break потрібно щоб реалізувати вихід з даного оператора.
⇑
2. Оператор continue. Призначення
Оператор continue застосовується всередині тіла циклу. Оператор припиняє виконання поточної ітерації і переходить наступної ітерації (наступного кроку циклу). Використання оператора continue в циклі ефективне, коли потрібно пропустити деякі ітерації в залежності від умови.
⇑
3. Оператор goto. Призначення
Оператор goto призначений для виконання безумовного переходу в програмі. Загальна форма використання оператора goto наступна
goto label;
де label – мітка в програмі для реалізації переходу.
У програмуванні на C# оператор goto може застосовуватись в двох аспектах:
- в тілі програми (деякої функції) для організації переходу між операторами;
- в операторі switch для переходу до однієї з міток case.
Якщо в програмі потрібно перейти на мітку з іменем m1, то фрагмент програмного коду може бути наступним
m1: // оператори // ... if (умова) goto m1;
тут умова – умовний вираз згідно синтаксису C#.
Використання оператора goto в програмі вважається поганим тоном в програмуванні. Це пов’язано з тим, що надто часте використання оператора goto в програмі плутає програмний код та ускладнює його сприйняття. Тому, по можливості, рекомендовано замінювати goto операторами циклу. Однак, це тільки рекомендація.
⇑
4. Приклади програм з використанням оператора break
Приклад 1. Дана послідовність з 10 чисел. Визначити, чи є ця послідовність впорядкованою за зростанням. У випадку негативної відповіді визначити порядковий номер першого числа, що порушує дану послідовність.
Один з можливих розв’язків задачі для додатку типу Console Application наступний
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { // Визначення, чи є послідовність зростаючою int num, pnum, pos = 0; int i; Console.WriteLine("Enter numbers:"); // цикл вводу чисел (до 10 чисел) i = 0; num = Convert.ToInt32(Console.ReadLine()); pnum = num; while (i < 9) { // якщо не перший раз виконується тіло циклу if (pnum > num) { // послідовність не є зростаючою pos = i; // запам'ятати порядковий номер break; // вихід з циклу } pnum = num; i++; num = Convert.ToInt32(Console.ReadLine()); } if (i == 9) Console.WriteLine("The sequence is ascending."); else { Console.WriteLine("The sequence is not ascending."); Console.WriteLine("break position = {0}", pos + 1); } Console.ReadKey(); } } }
Як видно з вищенаведеного коду, якщо послідовність не є зростаючою, то вихід з циклу while відбувається з допомогою оператора break.
Результат виконання програми
Enter numbers: 5 6 4 The sequence is not ascending. break position = 3
Приклад 2. Дано деяку послідовність цілих чисел, яка завершується числом 15. Реалізувати обчислення суми елементів послідовності. Число 15 в суму не включати.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { // Обчислення суми елементів послідовності int num; int sum; Console.WriteLine("Enter numbers:"); // цикл вводу чисел, використано оператор do-while sum = 0; // шукана сума do { num = Convert.ToInt32(Console.ReadLine()); if (num == 15) break; // вихід з циклу, якщо введене число 15 sum = sum + num; } while (true); // вічний цикл Console.WriteLine("sum = {0}", sum); Console.ReadKey(); } } }
Результат виконання програми
Enter numbers: 5 5 6 8 2 15 sum = 26
⇑
5. Приклади програм з використанням оператора continue
Приклад 1. Дано послідовність цілих чисел, яка завершується числом 0. Обчислити суму елементів послідовності, номери позицій яких кратні 3 (елементи на позиціях 3, 6, 9 …). Вважати, що нумерація позицій елементів починається з 1.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { // Обчислення суми елементів послідовності, // які лежать на позиціях кратних 3 int num; int sum; int i; Console.WriteLine("Enter numbers:"); // цикл вводу чисел, використано оператор do-while sum = 0; // шукана сума i = 0; do { num = Convert.ToInt32(Console.ReadLine()); i++; // якщо позиція рівна 3, то пропустити підсумовування if (i % 3 != 0) continue; sum = sum + num; } while (num != 0); Console.WriteLine("sum = {0}", sum); Console.ReadKey(); } } }
Результат виконання програми
Enter numbers: 1 1 100 2 2 215 3 3 150 5 6 0 sum = 465
Приклад 2. Дано послідовність дійсних чисел, яка завершується числом -1. Обчислити суму елементів послідовності, значення яких знаходяться в межах [1.7 … 2.7].
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { // Обчислення суми елементів послідовності, // значення яких є в межах [1.7 .. 2.7] const double MIN = 1.7; const double MAX = 2.7; double sum = 0; double number = 0; Console.WriteLine("Enter numbers:"); while (number != -1) { number = Double.Parse(Console.ReadLine()); if ((number < MIN) || (number > MAX)) continue; sum += number; } Console.WriteLine("sum = {0}", sum); Console.ReadKey(); } } }
Результат виконання програми
Enter numbers: 1.1 2 3.1 -4.5 1.9 -1 sum = 3.9
⇑
6. Приклади програм з використанням оператора goto
Приклад 1. Організувати циклічний процес обчислення суми елементів послідовності з допомогою оператора goto. Кінець послідовності – число 0.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { // Обчислення суми елементів послідовності, // оператор goto double sum = 0; double number; Console.WriteLine("Enter numbers:"); number = 1; // мітка, символізує початок блоку що повторюється begLoop: number = Double.Parse(Console.ReadLine()); if (number != 0) { sum += number; goto begLoop; // перехід на мітку begLoop } Console.WriteLine("sum = {0}", sum); Console.ReadKey(); } } }
Результат виконання програми
Enter numbers: 5 6 1 0 sum = 12
⇑
Зв’язані теми
⇑