Вывести числа через цикл

Цикл while

Цикл while (“пока”) позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно. Условие записывается до тела цикла и проверяется до выполнения тела цикла. Как правило, цикл while используется, когда невозможно определить точное значение количества проходов исполнения цикла.

i = 0
while i 5 :
print (i)
i += 1

Цикл while и цикл for имеют схожую структуру, НО есть одно важное различие — цикл while может быть бесконечным.

i = 0
while True :
print (i)
i += 1

# Вывод:
>>> 0
>>> 1
>>> 2
>>> 3
>>> 4
# Это может продолжаться долго.

Код выше будет бесконечно печатать возрастаютщую последовательность чисел.

Цикл while можно сравнить с цикличным условным оператором.

text = ‘Hello world’
i = 0
while i len (text):
print (text[i])
i += 1

Код, приведенный выше, печатает строку посимвольно. Приведу пример аналогичного цикла for:

text = ‘Hello world’
for i in text:
print (i)

Более того, я приведу даже два цикла for!

text = ‘Hello world’
for i in range ( len (text)):
print (text[i])

Напомню, что отличие между двумя, приведенными выше примерами, в следующем: первый цикл проходит по элементам последовательности (в нашем случае строки), а второй — по ее индексам. Здесь также используется функция len(), которая позволяет узнать длину последовательности.

Вернемся к циклу while. Цикл while, как и цикл for, можно остановить с помощью специальной управлющей конструкции break.

j = 0
while True :
if j == 3 :
print ( ‘Выход из цикла’ )
break
print (j)
j += 1

Конструкция break прерывает цикл. Она очень похожа на обычное условие после ключевого слова while.

Так же есть еще одна управляющая конструкция — continue. С ее помощью мы можем не выпонять текущую итерацию (повторение) цикла и перейти сразу к следующему.

j = 0
while j 5 :
j += 1
if j == 3 :
print ( ‘Пропускаем j == 3 ‘ )
continue
print (j)

Как и для цикла for, для цикла while мы можем записать конструкцию else.

from random import randint
j = 0
element = randint ( 0 , 15 )
while j 10 :
j += 1
if j == element:
print ( ‘Нашли element, он равен’ , element)
break
else :
print ( ‘Неудачная попытка’ )

Примеры решения задач

Возведение числа в степень с помощью цикла while

n = int ( input ()) # число
k = int ( input ()) # степень
i = 1 # текущая степень
result = 1
while i k:
result *= n
i += 1
print (result)

Сумма последовательности с помощью цикла while

n = int ( input ())
result = 0
i = 0
while i n:
result += i
i += 1
print (result)

Ввод последовательности чисел

i = 0
while True :
n = input ()
if n == ‘end’ :
print ( ‘Ввод закончен’ )
print ( ‘Было введено’ , i, ‘чисел’ )
break
n = int (n)
i += 1

Сумма введенных чисел

i = 0
summa = 0
while True :
n = input ()
if n == ‘end’ :
print ( ‘Ввод закончен’ )
print ( ‘Было введено’ , i, ‘чисел’ )
print ( ‘Их сумма равна’ , summa)
break
n = int (n)
summa += n
i += 1

Решение задач

1. Дано положительное число N. Вывести все числа от 0 до N с помощью цикла while.

2. Дано положительное число N. Вывести все числа от N до 0 с помощью цикла while. Пример:

3. Даны два положительных числа K и N (K 4. Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти длину незанятой части отрезка A (взятие остатка A % B)

5. Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти количество отрезков B, размещенных на отрезке A (деление нацело A // B)

6. Дано положительное число N. Найти сумму всех четных чисел от 0 до N с помощью цикла while.

7. Даны два положительных числа K и N (K нечетных чисел от K до N с помощью цикла while.

8. Дано положительное число N. Найти факториал числа N. Факториалом числа называется произведение всех чисел от 1 до N. Например, факториал числа 5 равен 5! = 1*2*3*4*5 = 120 , 2! = 1*2 = 2 , 9! = 1*2*3*4*5*6*7*8*9 = 362880

9. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести YES, если не является — вывести NO.

10. Дано целое число N (> 0). Найти двойной факториал N: N!! = N * (N-2) * (N-4)* . . Для решения этой задачи посмотрите на задачу 2

Сложные задачи

1. Дано целое число N (> 1). Найти наименьшее целое число K, при котором выполняется неравенство 3^K > N, где 3^K — это 3 в степени K или число 3, умноженное само на себя K раз. Например, 3^5 = 3*3*3*3*3 . Ответом в задаче будет первая степень числа 3, которая больше, чем заданное число N. Например, если N=41, распишем степени числа три: 3^1 = 3; 3^2 = 3*3 = 9; 3^3 = 3*3*3 = 27; 3^4 = 3*3*3*3 = 27 * 3 = 81; . Таким образом, первая степень, в которую возвести число 3, превышающая число N — это 4.
В этой задаче нужно выполнять цикл while, пока остаток от деления на число три равен 0

2. Дано целое число N (> 0). Используя операции деления нацело и взятия остатка от деления, вывести все его цифры, начиная с самой правой (разряда единиц).
Перед решением этой задачи вспомните, как найти сумму цифр трехначного числа.

3. Даны целые положительные числа A и B. Найти их наибольший общий делитель (НОД), используя алгоритм Евклида: НОД(A, B) = НОД(B, A mod B), если B = 0; НОД(A, 0) = A.

4. Спортсмен-лыжник начал тренировки, пробежав в первый день 10 км. Каждый следующий день он увеличивал длину пробега на P процентов от пробега предыдущего дня (P — вещественное, 0 5. Дано целое число N (> 1). Последовательность чисел Фибоначчи FK определяется следующим образом: F(1) = 1, F(2) = 1, F(K) = F(K-2) + F(K-1), K = 3, 4, . . Проверить, является ли число N числом Фибоначчи. Если является, то вывести TRUE, если нет — вывести FALSE.

6. Даны положительные числа A, B, C. На прямоугольнике размера A x B размещено максимально возможное количество квадратов со стороной C (без наложений). Найти количество квадратов, размещенных на прямоугольнике. Операции умножения и деления не использовать.

7. Дано целое число N (> 1), являющееся числом Фибоначчи: N = F(K). Найти целое число K — порядковый номер числа Фибоначчи N.

Источник

Изучаем циклы в PHP: цикл for с примерами

Цикл for является одним из наиболее часто используемых циклов в любом языке программирования. В этой статье мы подробно рассмотрим цикл for PHP .

Оператор цикла for в PHP

Цикл for в PHP выполняет блок кода определенное количество раз на основе счетчика. При этом количество раз, которое блок кода должен быть выполнен, определяется предварительно до входа в тело цикла.

for является одним из самых сложных видов цикла. В PHP цикл for ведет себя аналогично C . Ниже приведена структура синтаксиса:

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

Как работает цикл for в PHP?

Чтобы понять, как работает цикл for , нам нужно понять эти три выражения. Выражение: expresison1 является первым, которое выполняется только один раз перед входом в цикл. Оно выполняется безоговорочно. Это значит, что первый раз перед входом в цикл выражение будет выполнено.

Expresison1 называется инициализирующим выражением, поскольку оно используется для инициализации счетчика, который используется в выражениях expression2 и expression3 .

Expression2 ( проверка условия ) проверяется для того, чтобы определить разрешает ли условие выполнить инструкцию или нет. Первый раз оно запускается после expression1 , затем — перед входом в цикл.

Обычно expression2 содержит условный оператор, чтобы проверить, возвращает ли условие true или false . Если условие вернет true , тогда будет выполняться оператор, написанный в цикле.

Expression3 выполняется в конце каждой итерации после оператора цикла. Обычно программисты называют его выражением инкремента. Оно используют это выражение для увеличения значения счетчика, который был инициализирован в expression1 и проанализирован в expression2 .

Все три выражения не являются обязательными. Также можно создать PHP цикл, как показано ниже:

Если у нас несколько строк в цикле for , используйте фигурные скобки, как показано ниже:

Блок-схема цикла for

На первом шаге выполняется выражение expression1 . Если вы внимательно посмотрите блок-схему, то обнаружите, что для expression1 не существует условия. Выражение expression1 похоже на поток выполняемой программы.

На следующем шаге сразу после выражения expression1 выполняется expression2 . Оно проверяет, выполняется ли условие цикла. Если условие истинно, то дальше будет выполняться цикл, иначе поток выйдет из цикла.

Если expression2 вернет true , то на третьем шаге будет выполнен оператор, написанный в цикле for . После этого будет выполнено третье выражение expression3 .

После выполнения выражения expression3 поток снова проверяет expression2 , и цикл продолжается до тех пор, пока expression2 не вернет false .

Простой пример цикла for в PHP

Рассмотрим случай, когда нужно вывести на экран числа от 1 до 10 через запятую. Ниже приведен код:

Или с фигурной скобкой:

Выражение $i=1 является expression1 , которое выполняется безоговорочно. Мы используем expression1 для инициализации переменной, равной $i=1 .

Источник

Цикл while — Пример вывода чисел от 1 до 100

В JavaScript есть несколько видов циклов. Один из них это цикл while (while переводиться как пока).

Чтобы понять, как работает цикл while, рассмотрим два примера.

Вывод чисел от 1 до 100

Чтобы понять, как работает цикл while , рассмотрим простой пример. Последовательно, при помощи цикла выведем на экран числа от 1 до 100 .

Как известно цикл имеет определенную структуру и имеет 3 составляющих.

Применительно к нашему случаю это:

Счётчик – числа от 1 до 100.

Действие — вывод чисел на экран.

Ограничение – дойдя до 100, вывод чисел прекращается.

Сначала создается счётчик — переменная i , которой присваивается значение 1 .

Затем задается условие и выполняется действие : пока i меньше или равно 100 , происходит вывод на экран значения переменной i и сразу после этого к текущему значению переменной прибавляется единица.

И ограничение : дойдя до 100, вывод чисел прекращается.

Перед тем как подробно и по шагам разобрать этот пример, полезно вспомнить следующее: язык JavaScript воспринимает условие, следующее после оператора while либо как Истину , либо как Ложь .

Итак, сначала i = 1 .

Идёт проверка равенства 1 . Это Истина и JavaScript выводит на экран 1 .

Затем к текущему значению переменной i прибавляется единица: i = i + 1.

Идёт проверка равенства 2 . Это Истина и JavaScript выводит на экран 2 .

Снова к переменной i прибавляется единица: i = i + 1;

И так до тех пор, пока цикл не дойдет до 100.

Идёт проверка равенства 100 . Это Истина и JavaScript выводит на экран 100 .

Снова к переменной i прибавляется единица: i = i + 1;

Идёт проверка равенства 101 . Это Ложь . Условие не выполняется и JavaScript прекращает свою работу с циклом. Соответственно вывод чисел прекращается .

Точно также за 1 секунду можно вывести на экран числа от 1 до 10 000 . В то время как вручную этот процесс займет гораздо больше времени.

Цикл while — Вывод элементов Массива

Второй пример работы цикла while – вывод элементов массива.

Есть массив: var friends = [» Алексей», » Вячеслав», » Григорий», «Настя», » Павел»];

Используя цикл while , нужно вывести на экран значения его элементов .

Массив содержит 5 элементов.

Нумерация элементов массива начинается с нуля, поэтому начальное значение счетчика цикла — это 0 .

Ограничение – число элементов массива 5 .

Действие — вывод на экран значения текущего элемента массива и прибавление к счетчику единицы.

Алексей
Вячеслав
Григорий
Настя
Павел

Из этих примеров работы с циклом while следует вывод: применение циклов в JavaScript , в частности цикла while , позволяет автоматизировать некоторые действия .

Источник

Циклы while и for

При написании скриптов зачастую встаёт задача сделать однотипное действие много раз.

Например, вывести товары из списка один за другим. Или просто перебрать все числа от 1 до 10 и для каждого выполнить одинаковый код.

Для многократного повторения одного участка кода предусмотрены циклы.

Цикл «while»

Цикл while имеет следующий синтаксис:

Код из тела цикла выполняется, пока условие condition истинно.

Например, цикл ниже выводит i , пока i :

Одно выполнение тела цикла по-научному называется итерация. Цикл в примере выше совершает три итерации.

Если бы строка i++ отсутствовала в примере выше, то цикл бы повторялся (в теории) вечно. На практике, конечно, браузер не позволит такому случиться, он предоставит пользователю возможность остановить «подвисший» скрипт, а JavaScript на стороне сервера придётся «убить» процесс.

Любое выражение или переменная может быть условием цикла, а не только сравнение: условие while вычисляется и преобразуется в логическое значение.

Например, while (i) – более краткий вариант while (i != 0) :

Если тело цикла состоит лишь из одной инструкции, мы можем опустить фигурные скобки <…>:

Цикл «do…while»

Проверку условия можно разместить под телом цикла, используя специальный синтаксис do..while :

Цикл сначала выполнит тело, а затем проверит условие condition , и пока его значение равно true , он будет выполняться снова и снова.

Такая форма синтаксиса оправдана, если вы хотите, чтобы тело цикла выполнилось хотя бы один раз, даже если условие окажется ложным. На практике чаще используется форма с предусловием: while(…) <…>.

Цикл «for»

Более сложный, но при этом самый распространённый цикл — цикл for .

Выглядит он так:

Давайте разберёмся, что означает каждая часть, на примере. Цикл ниже выполняет alert(i) для i от 0 до (но не включая) 3 :

Рассмотрим конструкцию for подробней:

часть
начало i = 0 Выполняется один раз при входе в цикл
условие i Проверяется перед каждой итерацией цикла. Если оно вычислится в false , цикл остановится.
шаг i++ Выполняется после тела цикла на каждой итерации перед проверкой условия.
тело alert(i) Выполняется снова и снова, пока условие вычисляется в true .

В целом, алгоритм работы цикла выглядит следующим образом:

То есть, начало выполняется один раз, а затем каждая итерация заключается в проверке условия, после которой выполняется тело и шаг.

Если тема циклов для вас нова, может быть полезным вернуться к примеру выше и воспроизвести его работу на листе бумаги, шаг за шагом.

Вот в точности то, что происходит в нашем случае:

В примере переменная счётчика i была объявлена прямо в цикле. Это так называемое «встроенное» объявление переменной. Такие переменные существуют только внутри цикла.

Вместо объявления новой переменной мы можем использовать уже существующую:

Пропуск частей «for»

Любая часть for может быть пропущена.

Для примера, мы можем пропустить начало если нам ничего не нужно делать перед стартом цикла.

Можно убрать и шаг :

Это сделает цикл аналогичным while (i .

А можно и вообще убрать всё, получив бесконечный цикл:

При этом сами точки с запятой ; обязательно должны присутствовать, иначе будет ошибка синтаксиса.

Прерывание цикла: «break»

Обычно цикл завершается при вычислении условия в false .

Но мы можем выйти из цикла в любой момент с помощью специальной директивы break .

Например, следующий код подсчитывает сумму вводимых чисел до тех пор, пока посетитель их вводит, а затем – выдаёт:

Директива break в строке (*) полностью прекращает выполнение цикла и передаёт управление на строку за его телом, то есть на alert .

Вообще, сочетание «бесконечный цикл + break » – отличная штука для тех ситуаций, когда условие, по которому нужно прерваться, находится не в начале или конце цикла, а посередине.

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

Директива continue – «облегчённая версия» break . При её выполнении цикл не прерывается, а переходит к следующей итерации (если условие все ещё равно true ).

Её используют, если понятно, что на текущем повторе цикла делать больше нечего.

Например, цикл ниже использует continue , чтобы выводить только нечётные значения:

Для чётных значений i , директива continue прекращает выполнение тела цикла и передаёт управление на следующую итерацию for (со следующим числом). Таким образом alert вызывается только для нечётных значений.

Цикл, который обрабатывает только нечётные значения, мог бы выглядеть так:

С технической точки зрения он полностью идентичен. Действительно, вместо continue можно просто завернуть действия в блок if .

Однако мы получили дополнительный уровень вложенности фигурных скобок. Если код внутри if более длинный, то это ухудшает читаемость, в отличие от варианта с continue .

Обратите внимание, что эти синтаксические конструкции не являются выражениями и не могут быть использованы с тернарным оператором ? . В частности, использование таких директив, как break/continue , вызовет ошибку.

Например, если мы возьмём этот код:

…и перепишем его, используя вопросительный знак:

…то будет синтаксическая ошибка.

Это ещё один повод не использовать оператор вопросительного знака ? вместо if .

Метки для break/continue

Бывает, нужно выйти одновременно из нескольких уровней цикла сразу.

Например, в коде ниже мы проходимся циклами по i и j , запрашивая с помощью prompt координаты (i, j) с (0,0) до (2,2) :

Нам нужен способ остановить выполнение если пользователь отменит ввод.

Обычный break после input лишь прервёт внутренний цикл, но этого недостаточно. Достичь желаемого поведения можно с помощью меток.

Метка имеет вид идентификатора с двоеточием перед циклом:

Вызов break в цикле ниже ищет ближайший внешний цикл с такой меткой и переходит в его конец.

В примере выше это означает, что вызовом break outer будет разорван внешний цикл до метки с именем outer , и управление перейдёт со строки, помеченной (*) , к alert(‘Готово!’) .

Можно размещать метку на отдельной строке:

Директива continue также может быть использована с меткой. В этом случае управление перейдёт на следующую итерацию цикла с меткой.

Метки не дают возможности передавать управление в произвольное место кода.

Например, нет возможности сделать следующее:

Вызов break/continue возможен только внутри цикла, и метка должна находиться где-то выше этой директивы.

Итого

Мы рассмотрели 3 вида циклов:

  • while – Проверяет условие перед каждой итерацией.
  • do..while – Проверяет условие после каждой итерации.
  • for (;;) – Проверяет условие перед каждой итерацией, есть возможность задать дополнительные настройки.

Чтобы организовать бесконечный цикл, используют конструкцию while (true) . При этом он, как и любой другой цикл, может быть прерван директивой break .

Если на данной итерации цикла делать больше ничего не надо, но полностью прекращать цикл не следует – используют директиву continue .

Обе этих директивы поддерживают метки, которые ставятся перед циклом. Метки – единственный способ для break/continue выйти за пределы текущего цикла, повлиять на выполнение внешнего.

Заметим, что метки не позволяют прыгнуть в произвольное место кода, в JavaScript нет такой возможности.

Источник

Читайте также:  Как стирать стельки шоль
Оцените статью