Оператор цикла while . Общая форма. Примеры решения задач
Поиск на других ресурсах:
1. Назначение оператора цикла while . Общая форма. Особенности использования
Оператор цикла while предназначен для организации циклического процесса, в котором выполнение каждой следующей итерации определяется на основе истинности некоторого условия. Оператор цикла while еще называют оператором цикла с предусловием.
Общая форма оператора цикла while следующая:
while (условие) оператор;
- условие – некоторое условие согласно синтаксису языка C#. Инструкция оператор выполняется до тех пор, пока значение условие = true . Как только значение условие становится равным false , то циклический процесс прекращается и выполняются следующие после while операторы;
- оператор – один или несколько операторов. Если в цикле while нужно выполнить несколько операторов одновременно, то эти операторы берутся в фигурные скобки .
Тело цикла ( оператор ) выполняется, пока значение условие есть истинным ( true ). Оператор цикла должен быть организован таким образом, чтобы в конечном счете значение условия стало равно false . Иначе, программа «зависнет», так как выйдет бесконечный цикл.
Уроки Python для начинающих: Циклы в программировании, как работает цикл while #10
Общая форма оператора цикла while , в котором выполняются несколько (два и более) операторов имеет следующий вид
while (условие)
оператор1;
оператор2;
.
операторN;
>
2. Понятие вложенных циклов while
Цикл while может быть вложенным в другие конструкции. Этими конструкциями могут быть:
- циклы for , while , do…while ;
- оператор условного перехода if ;
- оператор выбора switch .
Количество уровней вложения, в которых может использоваться цикл while , есть неограниченным.
3. Схема оператора while
На рисунке 1 изображена схема оператора while . Как видно из схемы, сначала происходит проверка условия. Если значение условия равно True , то выполняется тело цикла. Выход из циклического процесса происходит в случае, если значение условия становится равно False .
Рисунок 1. Схема оператора while
4. Примеры решения задач с оператором цикла while
4.1. Вывод результатов вычисления в цикле
Условие задачи. Получить таблицу температур по Цельсию tc от -50 до +50 градусов а также их эквивалентов по шкале Фаренгейта tf , используя соотношение
Решение. Текст программы решения данной задачи для приложения типа Console Application , с использованием цикла while , следующий
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
class Program
static void Main(string[] args)
// шкала температур Цельсий => Фаренгейт
int tc; // текущее значение температуры по Цельсию
Циклы. Цикл while. Что это. Что делает. Пример. Синтаксис. Урок #14.
double tf; // значение температуры по Фаренгейту
tc = -50;
Console.WriteLine(«Шкала температур: Цельсий — Фаренгейт»);
while (tc tf = 9.0 / 5.0 * tc + 32;
tc++;
Console.WriteLine(» C => F», tc, tf);
>
>
>
>
4.2. Рекурентные алгоритмы. Вычисление n -го члена последовательности
Условие задачи. Определить n -й член числовой последовательности ( n >2):
Решение. Текст программы решения данной задачи следующий:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
class Program
static void Main(string[] args)
// вычисление n-го члена последовательности
int n; // n>2
int x0, x1, x2;
int i;
// ввести значение n
Console.Write(«n color: #008080;»>Convert.ToInt32(Console.ReadLine());
// начальные присваивания
x0 = x1 = 1;
x2 = x0 + x1;
i = 1;
while (i // вычисление
x0 = x1;
x1 = x2;
x2 = x0 + x1;
i++;
>
Console.WriteLine(» «, x2);
>
>
>
В результате выполнения вышеприведенного кода, будет получен следующий результат
n = 7
13
4.3. Вычислить значения числа π с заданной точностью
Условие задачи. Вычислить значения числа π, используя формулу:
Определить, какое количество слагаемых нужно для определения числа π с точностью 7 знаков после запятой.
Решение. Для решения подобных задач цикл while подходит как нельзя лучше. Программный код решения задачи для приложения типа Console Application приведен ниже
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
class Program
static void Main(string[] args)
// вычислить значение числа Пи
double pi; // результат
int denom; // знаменатель
int sign; // переменная, изменяющая знак числа + на -, и наоборот
double t; // дополнительная переменная — текущая точность
const double eps = 0.0000001; // точность 7 знаков после запятой
int k; // количество слагаемых для получения заданной точности
// начальные приготовления
k = 0;
pi = 0;
denom = 1;
sign = 1;
t = 1.0 / denom * sign;
// цикл while — вычисление
while (t > eps)
pi = pi + 4 * t * sign;
sign = -sign; // изменить знак
denom += 2; // изменить знаменатель
t = 1.0 / denom;
k++; // увеличить на 1 количество слагаемых
>
// вывод результата
Console.WriteLine(«Pi = «, pi);
Console.WriteLine(«k = «, k);
>
>
>
В результате выполнения вышеприведенного кода был получен следующий результат
Pi = 3.14159245358978
k = 5000000
5. Примеры решения задач, в которых оператор while есть вложенным
5.1. Цикл while есть вложенным в оператор выбора switch
В примере цикл while есть вложенным в оператор выбора switch . В зависимости от значения переменной a , выбирается соответствующий вариант нахождения суммы:
- если a =1, то вычисляется s = 5+10+…+100;
- если a =2, то вычисляется s = 5+10+…+20;
- если a =3, то вычисляется s = 5+10;
- иначе вычисляется s =100.
Программный код приложения типа Console Application , решающий данную задачу следующий:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
class Program
static void Main(string[] args)
int a;
int s = 0;
int i;
a = 7;
// выбор алгоритма решения задачи в зависимости от значения a
switch (a)
case 1:
i = 0;
while (i < 100)
i = i + 5;
s = s + i;
>
break;
case 2:
i = 0;
while (i < 20)
i = i + 5;
s = s + i;
>
break;
case 3:
i = 0;
while (i < 10)
i = i + 5;
s = s + i;
>
break;
default:
s = 100;
break;
>
Console.WriteLine(«s = «, s);
>
>
>
В результате выполнения вышеприведенного кода, на экран будет выведен результат
s = 100
5.2. Цикл while есть вложенным в операторе цикла for
Условие задачи. Найти количество делителей любого из целых чисел от 120 до 140.
Решение. Ниже приведен программный код, решающий данную задачу для приложения типа Console Application :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
class Program
static void Main(string[] args)
// число делителей любого из целых чисел от 120 до 140
int i;
int up;
int t;
int k;
for (i = 120; i // определить максимально-допустимое значение делителя
up = i / 2;
k = 0; // число делителей
t = 1;
while (t // вложенный цикл while
if (i % t == 0) // определение: делитель или не делитель
k++;
t++;
>
// Вывести на экран делитель
Console.WriteLine(«: k = «, i, k);
>
>
>
>
В результате выполнения вышеприведенного кода, будет выведен следующий результат
120: k = 15
121: k = 2
122: k = 3
123: k = 3
124: k = 5
125: k = 3
126: k = 11
127: k = 1
128: k = 7
129: k = 3
130: k = 7
131: k = 1
132: k = 11
133: k = 3
134: k = 3
135: k = 7
136: k = 7
137: k = 1
138: k = 7
139: k = 1
140: k = 11
Связанные темы
- Оператор условного перехода if . Полная и сокращенная формы. Конструкция if-else-if
- Оператор выбора switch
Источник: www.bestprog.net
Циклы while и do. while в C#
В программировании порой необходимо выполнить набор инструкций определенное количество раз. Возможное решение — скопировать код. Но есть проблема: количество этих наборов мы можем либо не знать, либо их может быть очень много (10000, к примеру).
Решение проблемы — циклы. В программировании циклы используются для многократного выполнения блока кода. Цикл работает до тех пор, пока заданное условие истинно.
Цикл while
Для инициализации цикла используется ключевое слово while .
Синтаксис
while (условие) < // тело цикла while >
Как работает
- Цикл while содержит условие.
- Если условие = true :
• Выполняются инструкции в теле цикла.
• После выполнения инструкций условие проверяется снова. - Если условие = false , цикл завершается.
Блок-схема
Пример 1. Изучаем, как работает цикл while
using System; namespace Loop < class WhileLoop < public static void Main(string[] args) < int i=1; while (i<=5) < Console.WriteLine(«Цикл while C#: итерация <0>», i); i++; > > > >
Вывод:
Цикл while C#: итерация 1
Цикл while C#: итерация 2
Цикл while C#: итерация 3
Цикл while C#: итерация 4
Цикл while C#: итерация 5
Изначально i равно 1.
Когда программа достигает цикла while :
Пример 2. Вычисляем сумму пяти первых чисел
using System; namespace Loop < class WhileLoop < public static void Main(string[] args) < int i=1, sum=0; while (i<=5) < sum += i; i++; >Console.WriteLine(«Сумма = «, sum); > > >
Вывод:
Сумма = 15
Эта программа вычисляет сумму первых пяти натуральных чисел.
- Изначально значение переменной sum равно 0.
- На каждой итерации цикла значение sum увеличивается на i . После этого значение переменной i увеличивается на 1.
- Когда значение переменной i станет равно 6, условие i
Давайте посмотрим, что происходит во время выполнения программы.
Изначально i = 1, а sum = 0.
Итерация
Значение i
Значение sum
Источник: codechick.io
Оператор while (C)
Оператор while позволяет повторять выполнение оператора до тех пор, пока указанное выражение не станет ложным.
Синтаксис
iteration-statement :
while ( expression ) statement
Объект expression должен иметь арифметический тип или тип указателя. Выполнение происходит следующим образом:
- Вычисляется expression .
- Если expression изначально имеет значение false, тело while оператора никогда не выполняется, и управление передается от while оператора к следующему оператору в программе. Если expression имеет значение true (ненулевое), выполняется текст инструкции и процесс повторяется, начиная с шага 1.
Выполнение оператора while прерывается, если в теле оператора выполняется оператор break , goto или return . Для прерывания итерации без выхода из цикла while используйте оператор continue . Оператор continue передает управление в следующую итерацию оператора while .
Вот пример оператора while :
while ( i >= 0 )
В этом примере производится копирование символов из string2 в string1 . Если i значение больше или равно 0, то string2[i] присваивается string1[i] и i уменьшается. Когда значение переменной i становится равным 0 (или меньше 0), выполнение оператора while прекращается.
Источник: learn.microsoft.com