Оператор безусловного перехода goto




Оператор безусловного перехода goto имеет формат:

goto <метка>;

В теле той же функции должна присутствовать ровно одна конструкция вида:

<метка>: <оператор>;

Оператор goto передает управление на помеченный меткой оператор. Рассмотрим пример использования оператора goto:

static void Main()

{

float x;

metka: Console.WriteLine("x="); //оператор, помеченный меткой

x = float.Parse(Console.ReadLine());

if (x!=0) Console.WriteLine("y({0})={1}", x, 1 / x);

else

{

Console.WriteLine("функция не определена");

goto metka; // передача управление метке

}

}

Следует учитывать, что использование оператора goto затрудняет чтение больших по объему программ, поэтому использовать метки нужно только в крайних случаях, например, в операторе switch.

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

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

Мы уже применяли оператор break для выхода из оператора switch, аналогичным образом он может применяться для выхода из других операторов.

Оператор перехода к следующей итерации цикла continue

Оператор перехода к следующей итерации цикла continue пропускает все операторы, оставшиеся до конца тела цикла, и передает управление на начало следующей итерации (повторение тела цикла). Рассмотрим оператор continue на примере.

static void Main()

{

Console.WriteLine("n=");

int n = int.Parse(Console.ReadLine());

for (int i = 1; i <= n; i++)

{

if (i % 2 == 0) continue;

Console.Write(" " + i);

}

}

 

Замечание. Операторы return и throw будут рассмотрены позже.

Практикум

Приведены примеры и их решения.

Индивидуальные варианты в лабораторной работе 4.

  1. Дана точка на плоскости с координатами (х, у). Составить программу, которая выдает одно из сообщений "Да", "Нет", "На границе" в зависимости от того, лежит ли точка внутри заштрихованной области, вне заштрихованной области или на ее границе.

Пример:

1. using System; namespace Hello { class Program { static void Main() { Console.Write("x="); float x = float.Parse(Console.ReadLine()); Console.Write("y="); float y = float.Parse(Console.ReadLine()); if (x * x + y * y < 9 && y > 0) Console.WriteLine("внутри"); else if (x * x + y * y > 9 || y < 0) Console.WriteLine("вне"); else Console.WriteLine("на границе"); } } }
  1. Составить программу.

Замечание. При решении данных задач возможно использовать оператор switch или вложенные операторы if.

    1. Дан порядковый номер дня недели, вывести на экран его название.

Пример:

using System;

namespace Hello

{

class Program

{

static void Main()

{

Console.Write("n=");

byte n = byte.Parse(Console.ReadLine());

switch (n)

{

case 1: Console.WriteLine("понедельник"); break;

case 2: Console.WriteLine("вторник"); break;

case 3: Console.WriteLine("среда"); break;

case 4: Console.WriteLine("четверг"); break;

case 5: Console.WriteLine("пятница"); break;

case 6: Console.WriteLine("суббота"); break;

case 7: Console.WriteLine("воскресенье"); break;

default: Console.WriteLine("ВЫОШИБЛИСЬ"); break;

}

}

}

}

  1. Вывести на экран:

Замечание. Решите каждую задачу тремя способами - используя операторы цикла while, do while и for.

    1. целые числа 1, 3, 5, …, 21 в строчку через пробел:

Пример:

using System;

namespace Hello

{

class Program

{

 

static void Main()

{

Console.Write("n=");

byte n = byte.Parse(Console.ReadLine());

 

Console.Write("while: ");

int i = 1;

while (i <= n)

{

Console.Write(" " + i);

i += 2;

}

 

Console.Write("do while: ");

i = 1;

do

{

Console.Write(" " + i);

i += 2;

}

while (i <= n);

 

Console.Write("For: ");

for (i = 1; i<=n; i+=2)

{

Console.Write(" " + i);

}

}

}

}

  1. Вывести на экран числа следующим образом:

Пример:

1)            
             
             
             
             

using System;

namespace Hello

{

class Program

{

static void Main()

{

for (int i = 1; i<=4; ++i, Console.WriteLine())

{

for(int j=1; j<=6; ++j)

Console.Write(" " + i);

}

}

}

}

Самостоятельная работа

Задача 1. Дана шахматная доска размером n×n клеток. Верхняя левая клетка доски черная и имеет номер (1, 1). Например, для n=4 шахматная таблица выглядит следующим образом:

         
         
         
         
         
  1. для заданного значения n определить количество черных ячеек шахматной доски;
  2. по номеру ячейки (k, m) определить ее цвет;
  3. определить, являются ли ячейки с номерами (k1, m1) и (k2, m2) одного цвета;
  4. определить, находится ли фигура, стоящая в ячейке с номером (k1, m1), под ударом второй фигуры, стоящей в ячейке с номером (k2, m2), при условии, что ход второй фигуры и ей является:
    • пешка;
    • слон;
    • ладья;
    • ферзь;
    • конь.

Задача 2. Задана дата в формате <день>.<месяц>.<год>. Определить:

  1. сколько дней прошло с начала года;
  2. сколько дней осталось до конца года;
  3. дату предыдущего дня;
  4. дату следующего дня.

Задача 3. Натуральное число из n цифр является числом Армстронга, если сумма его цифр, возведенных в n-ную степень, равна самому числу. Например, 153=13+53+33. Найти все трехзначные числа Армстронга.

Задача 4. Стороны прямоугольника заданы натуральными числами n и m. Найти количество квадратов (стороны которых выражены натуральными числами), на которые можно разрезать данный прямоугольник, если от него каждый раз отрезать квадрат:

  1. наименьшей площади;
  2. наибольшей площади

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: