Как закончить программу в си Шарп

Язык C# предлагает несколько операторов, позволяющих немедленно перейти на другую строку программы.

К ним относятся четыре оператора: goto (go to — «перейти к»), break (перерыв), continue (дальше), return (возврат).

Конечно, самой плохой репутацией пользуется оператор goto, однако он сохранен в языке C#. Я иногда использую его при отладке программ (например, для обхода части кода), главное — не забыть его потом удалить. Другая (не слишком уважительная) причина — обеспечение преемственности с языками C и C++.

Рассмотрим их подробнее.

Оператор goto

Имеющийся в C# оператор goto представляет собой оператор безусловного перехода.
Когда в программе встречается оператор goto, ее выполнение переходит непосредственно к тому месту, на которое указывает этот оператор.
Он уже давно «вышел из употребления» в программировании, поскольку способствует созданию «макаронного» кода.
Хотя в некоторых случаях он оказывается удобным и дает определенные преимущества, если используется благоразумно.

Уроки C# – Нажатие клавиш в программе, событие на нажимаемые кнопки, KeyDown, KeyPreview – C#


Главный недостаток оператора goto с точки зрения программирования заключается в том, что он вносит в программу беспорядок и делает ее практически неудобочитаемой.
Но иногда применение оператора goto может, скорее, прояснить, чем запутать ход выполнения программы.
Для выполнения оператора goto требуется метка — действительный в C# идентификатор с двоеточием. Метка должна находиться в том же методе, где и оператор goto, а также в пределах той же самой области действия.

Пример использования оператора goto:

using System; namespace ConsoleApplication1 class Program static void Main(string[] args) // Обычный цикл for выводящий числа от 1 до 8 Console.WriteLine(«Обычный цикл for:»); for (int i = 1; i Console.Write(«t», i); // Реализуем то же самое с помощью оператора goto Console.WriteLine(«nnА теперь используем goto:»); int j = 1; link1: // это — метка Console.Write(«t», j); j++; if (j goto link1; Console.ReadLine(); > > >

2171

Репутация оператора goto такова, что в большинстве случаев его применение категорически осуждается. Вообще говоря, он, конечно, не вписывается в рамки практики ООП и применять его не рекомендуется.

Оператор break

С помощью оператора break можно специально организовать немедленный выход из цикла в обход любого кода, оставшегося в теле цикла, а также минуя проверку условия цикла.
Когда в теле цикла встречается оператор break, цикл завершается, а выполнение программы возобновляется с оператора, следующего после этого цикла.
Оператор break можно применять в любом цикле, предусмотренном в C#.
Пример:

using System; namespace ConsoleApplication1 class Program static void Main(string[] args) // В данном цикле выведутся числа от 1 до 12 вместо 100 for (int i = 1; i < 100; i++) if (i Console.Write(» «,i); else break; Console.ReadLine(); > > >

2172

C# ВВОД ДАННЫХ В КОНСОЛЬ | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | Урок # 5

Обратите внимание, что если оператор break применяется в целом ряде вложенных циклов, то он прерывает выполнение только самого внутреннего цикла.
В отношении оператора break необходимо также иметь в виду следующее.
Во-первых, в теле цикла может присутствовать несколько операторов break, но применять их следует очень аккуратно, поскольку чрезмерное количество операторов break обычно приводит к нарушению нормальной структуры кода.
И во-вторых, оператор break, выполняющий выход из оператора switch, оказывает воздействие только на этот оператор, но не на объемлющие его циклы.

Оператор continue

Оператор continue. С помощью оператора continue можно организовать преждевременное завершение шага итерации цикла в обход обычной структуры управления циклом.
Оператор continue осуществляет принудительный переход к следующему шагу цикла, пропуская любой код, оставшийся невыполненным. Таким образом, оператор continue служит своего рода дополнением оператора break.
В циклах while и do-while оператор continue вызывает передачу управления непосредственно условному выражению, после чего продолжается процесс выполнения цикла. А в цикле for сначала вычисляется итерационное выражение, затем условное выражение, после чего цикл продолжается.

Читайте также:
Какая программа открывает файлы cpp

using System; namespace ConsoleApplication1 class Program static void Main(string[] args) // Выводим числа кратные 5 for (byte i = 1; i if (i % 5 != 0) continue; Console.Write(«t», i); > Console.ReadLine(); > > >

2173

Результат:

Оператор continue редко находит удачное применение, в частности, потому, что в C# предоставляется богатый набор операторов цикла, удовлетворяющих большую часть прикладных потребностей.
Но в тех особых случаях, когда требуется преждевременное прерывание шага итерации цикла, оператор continue предоставляет структурированный способ осуществления такого прерывания.

Оператор return

Оператор return. Оператор return организует возврат из метода (функции). Его можно также использовать для возврата значения. Имеются две формы оператора return: одна — для методов типа void, то есть тех методов, которые не возвращают значения, а другая — для методов, возвращающих конкретные значения.

Для немедленного завершения метода типа void достаточно воспользоваться следующей формой оператора return:
return;
Когда выполняется этот оператор, управление возвращается вызывающей части программы, а оставшийся в методе код пропускается.

Для возврата значения из других (не void) методов в вызывающую часть программы служит следующая форма оператора return:
return значение;

Рассмотрим применение оператора return на конкретном примере:

using System; namespace ConsoleApplication1 class Program static void Main(string[] args) int result = Sum(100); Console.WriteLine(«Сумма четных чисел от 1 до 100 равна: » + result); Console.ReadLine(); > // Метод, возвращающий сумму всех четных чисел от 1 до s static int Sum(int s) int mySum = 0; for (int i = 1; i if (i % 2 == 0) mySum += i; return mySum; > > >

Результат работы данной программы:

2174

Мы рассмотрели все операторы языка C#. В предпоследней статье этого раздела хотелось бы обратить ваше внимание на использование в языке «знаков препинания«.

NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.

Источник: c-sharp.pro

Application. Exit Метод

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Сообщает всем средствам переноса сообщений, что они должны завершить работу, а затем закрывает все окна приложения после обработки сообщений.

Перегрузки

Сообщает всем средствам переноса сообщений, что они должны завершить работу, а затем закрывает все окна приложения после обработки сообщений.

Сообщает всем средствам переноса сообщений, что они должны завершить работу, а затем закрывает все окна приложения после обработки сообщений.

Exit()

Сообщает всем средствам переноса сообщений, что они должны завершить работу, а затем закрывает все окна приложения после обработки сообщений.

public: static void Exit();
public static void Exit ();
static member Exit : unit -> unit
Public Shared Sub Exit ()

Примеры

В следующем примере кода перечислены номера в списке в форме.

При каждом щелчке button1 приложение добавляет еще одно число в список.

Метод Main вызывает Run приложение, которое создает форму listBox1 и button1 . Когда пользователь щелкает button1 , button1_Click метод добавляет числа от 1 до трех в список и отображает значение MessageBox. Если пользователь нажимает кнопку «Нет » MessageBoxв списке, button1_Click метод добавляет в список еще одно число. Если пользователь нажимает кнопку «Да», приложение вызывает Exit, чтобы обработать все оставшиеся сообщения в очереди, а затем выйти.

В этом примере требуется listBox1 создать экземпляр и button1 поместить его в форму.

public: static void main() < // Starts the application. Application::Run( gcnew Form1 ); >private: void button1_Click( Object^ sender, System::EventArgs^ e ) < // Populates a list box with three numbers. int i = 3; for ( int j = 1; j Items->Add( j ); > /* Determines whether the user wants to exit the application. * If not, adds another number to the list box. */ while ( MessageBox::Show( «Exit application?», «», MessageBoxButtons::YesNo ) == ::DialogResult::No ) < // Increments the counter ands add the number to the list box. i++; listBox1->Items->Add( i ); > // The user wants to exit the application. Close everything down. Application::Exit(); >

Читайте также:
Инструкция к программе adobe premiere pro

public static void Main(string[] args) < // Starts the application. Application.Run(new Form1()); >private void button1_Click(object sender, System.EventArgs e) < // Populates a list box with three numbers. int i = 3; for(int j=1; j/* Determines whether the user wants to exit the application. * If not, adds another number to the list box. */ while (MessageBox.Show(«Exit application?», «», MessageBoxButtons.YesNo) == DialogResult.No) < // Increments the counter ands add the number to the list box. i++; listBox1.Items.Add(i); >// The user wants to exit the application. Close everything down. Application.Exit(); >

_ Shared Sub Main() ‘ Starts the application. Application.Run(New Form1()) End Sub Private Sub button1_Click(sender As object, e As System.EventArgs) ‘ Populates a list box with three numbers. Dim i As Integer = 3 Dim j As Integer For j = 1 To i — 1 listBox1.Items.Add(j) Next ‘ Checks to see whether the user wants to exit the application. ‘ If not, adds another number to the list box. While (MessageBox.Show(«Exit application?», «», MessageBoxButtons.YesNo) = _ DialogResult.No) ‘ Increments the counter and adds the number to the list box. i = i + 1 listBox1.Items.Add(i) End While ‘ The user wants to exit the application. Close everything down.

Application.Exit() End Sub

Комментарии

Метод Exit останавливает все выполняемые циклы сообщений во всех потоках и закрывает все окна приложения. Этот метод не обязательно принудительно завершает работу приложения. Метод Exit обычно вызывается из цикла сообщений и принудительно Run возвращается.

Чтобы выйти из цикла сообщений только для текущего потока, вызовите ExitThread.

Exit вызывает следующие события и выполняет связанные условные действия:

  • Событие FormClosing вызывается для каждой формы, представленной свойством OpenForms . Это событие можно отменить, задав Cancel для свойства параметра FormClosingEventArgs значение true .
  • Если один из нескольких обработчиков отменяет событие, возвращается Exit без дальнейших действий. В противном случае событие создается для каждой FormClosed открытой формы, после чего все выполняемые циклы сообщений и формы закрываются.

Метод Exit не вызывает Closed события и Closing события, которые устарели по состоянию на платформа .NET Framework 2.0.

Источник: learn.microsoft.com

Операторы перехода

Язык C# предлагает несколько операторов, позволяющих немедленно перейти на другую строку программы. Давайте их рассмотрим.

Оператор goto

Имеющийся в C# оператор goto представляет собой оператор безусловного перехода. Когда в программе встречается оператор goto, ее выполнение переходит непосредственно к тому месту, на которое указывает этот оператор. Он уже давно «вышел из употребления» в программировании, поскольку способствует созданию «макаронного» кода.

Хотя в некоторых случаях он оказывается удобным и дает определенные преимущества, если используется благоразумно. Главный недостаток оператора goto с точки зрения программирования заключается в том, что он вносит в программу беспорядок и делает ее практически неудобочитаемой. Но иногда применение оператора goto может, скорее, прояснить, чем запутать ход выполнения программы.

Для выполнения оператора goto требуется метка — действительный в C# идентификатор с двоеточием. Метка должна находиться в том же методе, где и оператор goto, а также в пределах той же самой области действия.

Пример использования оператора goto:

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 < class Program < static void Main(string[] args) < // Обычный цикл for выводящий числа от 1 до 5 Console.WriteLine(«Обычный цикл for:»); for (int i = 1; i «,i); // Реализуем то же самое с помощью оператора goto Console.WriteLine(«nnА теперь используем goto:»); int j = 1; link1: Console.Write(«t»,j); j++; if (j > >

Читайте также:
Одна из программ зависла как вызвать диспетчер задач чтобы выполнить команду снять задачу

Использование оператора goto

Репутация оператора goto такова, что в большинстве случаев его применение категорически осуждается. Вообще говоря, он, конечно, не вписывается в рамки хорошей практики объектно-ориентированного программирования.

Оператор break

С помощью оператора break можно специально организовать немедленный выход из цикла в обход любого кода, оставшегося в теле цикла, а также минуя проверку условия цикла. Когда в теле цикла встречается оператор break, цикл завершается, а выполнение программы возобновляется с оператора, следующего после этого цикла. Оператор break можно применять в любом цикле, предусмотренном в C#.

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 < class Program < static void Main(string[] args) < // В данном цикле выведутся числа от 1 до 5 вместо 100 for (int i = 1; i < 100; i++) if (i > >

Обратите внимание если оператор break применяется в целом ряде вложенных циклов, то он прерывает выполнение только самого внутреннего цикла.

В отношении оператора break необходимо также иметь в виду следующее. Во-первых, в теле цикла может присутствовать несколько операторов break, но применять их следует очень аккуратно, поскольку чрезмерное количество операторов break обычно приводит к нарушению нормальной структуры кода. И во-вторых, оператор break, выполняющий выход из оператора switch, оказывает воздействие только на этот оператор, но не на объемлющие его циклы.

Оператор continue

С помощью оператора continue можно организовать преждевременное завершение шага итерации цикла в обход обычной структуры управления циклом. Оператор continue осуществляет принудительный переход к следующему шагу цикла, пропуская любой код, оставшийся невыполненным. Таким образом, оператор continue служит своего рода дополнением оператора break.

В циклах while и do-while оператор continue вызывает передачу управления непосредственно условному выражению, после чего продолжается процесс выполнения цикла. А в цикле for сначала вычисляется итерационное выражение, затем условное выражение, после чего цикл продолжается:

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 < class Program < static void Main(string[] args) < // Выводим числа кратные 5 for (byte i = 1; i «, i); > Console.ReadLine(); > > >

Оператор continue в C#

Оператор continue редко находит удачное применение, в частности, потому, что в C# предоставляется богатый набор операторов цикла, удовлетворяющих большую часть прикладных потребностей. Но в тех особых случаях, когда требуется преждевременное прерывание шага итерации цикла, оператор continue предоставляет структурированный способ осуществления такого прерывания.

Оператор return

Оператор return организует возврат из метода. Его можно также использовать для возврата значения. Имеются две формы оператора return: одна — для методов типа void, т.е. тех методов, которые не возвращают значения, а другая — для методов, возвращающих конкретные значения.

Для немедленного завершения метода типа void достаточно воспользоваться следующей формой оператора return:

return;

Когда выполняется этот оператор, управление возвращается вызывающей части программы, а оставшийся в методе код пропускается.

Для возврата значения из метода в вызывающую часть программы служит следующая форма оператора return:

return значение;

Давайте рассмотрим применение оператора return на конкретном примере:

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 < class Program < static void Main(string[] args) < int result = Sum(230); Console.WriteLine(«Сумма четных чисел от 1 до 230 равна: » + result); Console.ReadLine(); >// Метод, возращающий сумму всех четных чисел // от 1 до s static int Sum(int s) < int mySum = 0; for (int i = 1; i > >

Результат работы данной программы:

Источник: professorweb.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru