Операторы 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
⇑
Связанные темы
⇑