Как в цикле while задать несколько условий
Перейти к содержимому

Как в цикле while задать несколько условий

Цикл while с двойным условием в python

Собственно проблема следующая: когда оставляешь в цикле только одно из условий, все работает без нареканий. Как только добавляешь второе условие, они оба начинают просто игнорироваться, хотя должны соблюдаться вместе. И в тело цикла просто не заходит при любом веденном числе

Очевидно, что число не может быть одновременно больше 10 и меньше 0. Замените and на or .

Предположим, что number равно 15. Тогда имеем следующее:

  • number >= 10 — True
  • number <= 0 — False

По таблице истинности True AND False дает False, поэтому в цикл не попадает. То же самое, если число меньше 0.

А вот True OR False как раз дает True и выполнение заходит в цикл.

user avatar

Для большей понятности можно обратить условие, написав отрицание через not и взяв в скобки верное условие:

Т.е. цикл будет выполняться, пока не выполнилось искомое условие, что число «от 1 до 9 включительно».

P.S. Есть три отрезка, которым может принадлежать проверяемое число:

  • Числа < 1
  • Числа от 1 до 9
  • Числа > 9

Число может принадлежать одному из этих отрезков. Когда вы проверяете число на принадлежность отрезку [1,9] вы можете писать условия через и/and , потому что это один отрезок но когда вы проверяете, что число находится в одном из двух разных отрезков (меньше 1 либо, больше 9) вы не можете использовать и/and , а только или/or — это два разных отрезка, число не может принадлежать сразу и тому отрезку и другому.

Как в цикле while задать несколько условий

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

Синтаксис цикла while в простейшем случае выглядит так:

При выполнении цикла while сначала проверяется условие. Если оно ложно, то выполнение цикла прекращается и управление передается на следующую инструкцию после тела цикла while . Если условие истинно, то выполняется инструкция, после чего условие проверяется снова и снова выполняется инструкция. Так продолжается до тех пор, пока условие будет истинно. Как только условие станет ложно, работа цикла завершится и управление передастся следующей инструкции после цикла.

Например, следующий фрагмент программы напечатает на экран квадраты всех целых чисел от 1 до 10. Видно, что цикл while может заменять цикл for . in range(. ) :

В этом примере переменная i внутри цикла изменяется от 1 до 10. Такая переменная, значение которой меняется с каждым новым проходом цикла, называется счетчиком. Заметим, что после выполнения этого фрагмента значение переменной i будет равно 11 , поскольку именно при i == 11 условие i <= 10 впервые перестанет выполняться.

Вот еще один пример использования цикла while для определения количества цифр натурального числа n :

В этом цикле мы отбрасываем по одной цифре числа, начиная с конца, что эквивалентно целочисленному делению на 10 ( n //= 10 ), при этом считаем в переменной length , сколько раз это было сделано.

В языке Питон есть и другой способ решения этой задачи: .

2. Инструкции управления циклом

После тела цикла можно написать слово else: и после него блок операций, который будет выполнен один раз после окончания цикла, когда проверяемое условие станет неверно:

Казалось бы, никакого смысла в этом нет, ведь эту же инструкцию можно просто написать после окончания цикла. Смысл появляется только вместе с инструкцией break . Если во время выполнения Питон встречает инструкцию break внутри цикла, то он сразу же прекращает выполнение этого цикла и выходит из него. При этом ветка else исполняться не будет. Разумеется, инструкцию break осмыленно вызывать только внутри инструкции if , то есть она должна выполняться только при выполнении какого-то особенного условия.

Приведем пример программы, которая считывает числа до тех пор, пока не встретит отрицательное число. При появлении отрицательного числа программа завершается. В первом варианте последовательность чисел завершается числом 0 (при считывании которого надо остановиться).

Другая инструкция управления циклом — continue (продолжение цикла). Если эта инструкция встречается где-то посередине цикла, то пропускаются все оставшиеся инструкции до конца цикла, и исполнение цикла продолжается со следующей итерации.

Увлечение инструкциями break и continue не поощряется, если можно обойтись без их использования. Вот типичный пример плохого использования инструкции break (данный код считает количество знаков в числе).

3. Множественное присваивание

Если слева от знака «=» в множественном присваивании должны стоять через запятую имена переменных, то справа могут стоять произвольные выражения, разделённые запятыми. Главное, чтобы слева и справа от знака присваивания было одинаковое число элементов.

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

Цикл WHILE в PHP

Цикл WHILE выполняется, пока выражение в скобках принимает значение true .

Разберём на примере: необходимо вывести на экран числа от 1 до 10. С помощью цикла while эту задачу можно решить следующим образом:

Результат в браузере:

Перед запуском PHP получает результат выражения в круглых скобках и приводит к булеву типу.

Если при первом запуске результат будет true — блок кода выполнится. Затем опять произойдёт вычисление результата выражения и повторное выполнение блока кода. И так до тех пор, пока результатом выражения не станет false .

Переменная $i в данном случае выступает в роли счётчика и гарантирует, что скрипт будет выполнен столько раз, сколько нам нужно.

Будьте аккуратны при работе с циклом while. Вы можете случайно сделать бесконечный цикл вроде такого:

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

Цикл WHILE и несколько условий

При желании в цикл WHILE можно подставить сколько угодно условий:

Задача 1

1. Создайте переменную $count с любым числовым значением, например 10 .
2. С помощью цикла while выведите числа, количество которых равно $count, начиная с числа 1. Каждое последующее число должно быть больше предыдущего на 3. Т.е. при $count = 3 скрипт должен вывести 1 4 7 .

Задача 2

1. Создайте следующий массив: $arr = [3, 4, 9, 18, 22];
2. Напишите скрипт, который с помощью while переберёт все значения массива и выведет их на экран.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *