Loading...

break, continue, goto операторлору

1. Break оператору . Максат

C# тилинде break операторунун эки негизги колдонулушу бар:

  • цикл операторлорунда break оператору циклдик процессти токтотуу үчүн колдонулат (циклди үзгүлтүккө учуратуу). Мындай иш-аракет зарыл, код кандайдыр бир шартка жараша циклдин аткарылышын үзгүлтүккө учурашы керек;
  • которуштурууну тандоо операторунда бул билдирүүдөн чыгууну ишке ашыруу үчүн break операторун колдонуу зарыл.

  

2. continue. оператору . Максат

Continue оператору цикл корпусунун ичинде колдонулат. Оператор учурдагы итерациянын аткарылышын токтотот жана кийинки итерацияга өтөт (циклдин кийинки кадамы). Эгер шартка жараша кээ бир кайталоолорду өткөрүп жибергиңиз келсе, циклде улантуу операторун колдонуу натыйжалуу болот.

  

3. goto оператору . Максат

goto оператору программада шартсыз секирүүнү аткаруу үчүн иштелип чыккан. Goto операторун колдонуунун жалпы формасы төмөнкүдөй

goto label;

мында энбелги өтүүнү ишке ашыруу үчүн программадагы энбелги болуп саналат.

C# программалоодо goto операторун эки жол менен колдонсо болот:

  • программанын корпусунда (айрым функциянын) операторлор ортосунда өтүүнү уюштуруу;
  • которуштуруу билдирүүсүндө иштин бутактарынын бирине өтүү .

Эгерде программа m1 аттуу энбелгиге өтүшү керек болсо , анда программа кодунун фрагменти төмөнкүдөй болушу мүмкүн

m1:

// операторлор 
// ...

if ( шарт ) goto m1;

мында шарт C# синтаксисине ылайык шарттуу туюнтма.

Программада goto операторун колдонуу программалоодо начар форма деп эсептелет. Бул программада goto операторунун өтө көп колдонулушу программанын кодун чаташтырат жана аны кабыл алууну кыйындатат. Ошондуктан, мүмкүн болушунча, gotoну цикл операторлору менен алмаштыруу сунушталат . Бирок, бул бир гана сунуш.

 

4. Break операторун колдонгон программалардын мисалдары

Мисал 1. 10 сандан турган ырааттуулук берилген. Бул ырааттуулуктун өсүү тартибинде иреттелгенин аныктаңыз. Эгерде жооп терс болсо, бул ырааттуулукту бузган биринчи сандын сериялык номерин аныктаңыз.

 

Console Тиркеме түрүндөгү тиркеме үчүн көйгөйдү чечүүнүн мүмкүн болгон бир жолу төмөнкүдөй

 
@A@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();
    }
  }
}@A@
 

Жогорудагы коддон көрүнүп тургандай, ырааттуулук көбөйбөсө, анда while цикли break операторунун жардамы менен чыгарылат .

Программанын аткарылышынын натыйжасы

@T@Enter numbers:
5
6
4
The sequence is not ascending.
break position = 3@T@

 

5. Continue операторун колдонгон программалардын мисалдары

Мисал 1. 0 саны менен аяктаган бүтүн сандардын ырааттуулугу берилген. Позиция номерлери 3кө эселенген ырааттуулуктун элементтеринин суммасын эсептегиле (3, 6, 9 ... позицияларындагы элементтер). Элементтердин позицияларынын номерлери 1ден башталат деп ойлойлу.

 
@A@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();
    }
  }
}@A@

Программанын аткарылышынын натыйжасы

@T@Enter numbers:
1
1
100
2
2
215
3
3
150
5
6
0
sum = 465@T@

 

6. Goto операторун колдонгон программалардын мисалдары

Мисал 1. Goto операторунун жардамы менен ырааттуулуктун элементтеринин суммасын эсептөөнүн циклдик процессин уюштуруңуз . Тартиптин аягы 0 саны.

 
@A@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();
    }
  }
}@A@

Программанын аткарылышынын натыйжасы

@T@Enter numbers:
5
6
1
0
sum = 12@T@