C#. Оператор цикла do-while. Примеры использования




Оператор цикла do-while. Примеры использования


Содержание


Поиск на других ресурсах:

1. Оператор цикла do-while. Особенности использования. Общая форма

Оператор do-while используется для организации циклического процесса. Отличие этого оператора от оператора while состоит в том, что тело оператора do-while будет выполнено как минимум один раз независимо от значения условия выполнения цикла.

Общая форма оператора

do
{
  // инструкции, операторы
  // ...
}
while (условие)

где

  • условие – условие выполнения циклического процесса. Если значение условие = True, то будут выполняться операторы, размещенные между фигурными скобками { } (словами do и while).

 

2. Схема работы оператора цикла do-while

На рисунке 1 отображена схема работы цикла do-while.

C#. Схема работы оператора цикла do-while

Рис. 1. Схема работы оператора цикла do-while

 

3. Примеры решения задач с оператором цикла do-while
3.1. Вычисление суммы чисел последовательности

Дана непустая последовательность целых чисел, которая заканчивается нулем. Вычислить сумму всех чисел последовательности.

Текст программы для приложения типа 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 number; // вводимое число
      int summ = 0; // сумма чисел

      // Цикл ввода чисел, 0 - выход
      do
      {
        // Ввести число с клавиатури
        Console.Write("Input number (0 - exit): ");
        number = Int32.Parse(Console.ReadLine());

        // Вычислить сумму
        summ += number;
      } while (number != 0);

      // Вывести сумму
      Console.WriteLine("sum = {0}", summ);
      Console.ReadKey();
    }
  }
}

Результат выполнения программы

Input number (0 - exit): 1
Input number (0 - exit): 9
Input number (0 - exit): 2
Input number (0 - exit): -3
Input number (0 - exit): 0
sum = 9


 

3.2. Поиск значения в ряде чисел

Дано число a (1<a≤1.5). Среди чисел

найти первое, меньшее a.

Текст программы для приложения типа 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)
    {
      double a, t;
      int n;

      // Ввод значения a
      Console.Write("a = ");
      a = Convert.ToDouble(Console.ReadLine());

      // Проверка, значения на корректность
      if ((a < 0) || (a > 1.5))
      {
        Console.WriteLine("Error. The value of a is incorrect.");
        return;
      }

      n = 1;

      // цикл поиска n
      do
      {
        n++;
        t = 1 + 1.0 / n;
      } while (t >= a);

      // Вывести t, n
      Console.WriteLine("t = {0:f6}, n = {1}", t, n);
      Console.ReadKey();
    }
  }
}

Результат выполнения программы

a = 1.22
t = 1.200000, n = 5

 

3.3. Определение количества цифр в числе

Дано натуральное число. Определить количество цифр 7 в нем.

Текст программы для приложения типа 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)
    {
      // Определение количества цифр 7 в числе
      int number;
      int t;
      int k;

      // Ввод числа
      Console.Write("number = ");
      number = Convert.ToInt32(Console.ReadLine());

      if (number<0)
      {
        Console.WriteLine("Error. Incorrect number.");
        Console.ReadKey();
        return;
      }

      // Вычисление
      t = number; // сделать копию из number
      k = 0;

      // цикл вычисления k
      do
      {
        if (t % 10 == 7) k++;
        t = t / 10;
      } while (t > 0);

      Console.WriteLine("k = {0}", k);
      Console.ReadKey();
    }
  }
}

Результат выполнения программы

number = 45277
k = 2

 

3.4. Определение закономерности в последовательности

Дано натуральное число. Определить, есть ли последовательность его цифр при просмотре слева направо упорядоченной по убыванию. Например, для числа 9621 ответ положительный, для числа 8340 ответ отрицательный.

Текст программы для приложения типа 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 number;
      int t1, t2;
      bool f;

      // Ввод числа
      Console.Write("number = ");
      number = Convert.ToInt32(Console.ReadLine());

      if (number<0)
      {
        Console.WriteLine("Error. Incorrect number.");
        Console.ReadKey();
        return;
      }

      // Вычисление
      t1 = number % 10;
      f = true;

      // цикл do-while
      do
      {
        t2 = t1;
        number = number / 10;
        t1 = number % 10;
        if (t1 < t2)
        {
          f = false;
          break; // последовательность не убывающая
        }
      } while (number > 10);

      if (f == true)
        Console.WriteLine("The sequence is decreasing.");
      else
        Console.WriteLine("The sequence is not decreasing.");
      Console.ReadKey();
    }
  }
}

Результат выполнения программы

number = 88765521
The sequence is decreasing.

 


Связанные темы