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());

      // Перевірка, чи значення a є коректне
      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.

 


Зв’язані теми