Чем отличается if от while
Перейти к содержимому

Чем отличается if от while

  • автор:

Разница между оператором If и циклом while

Я прочитал это руководство по PHP.com о циклах While. Я не понимаю цели циклов While в PHP. Это выглядит как выражение if . В чем разница между выражением if и циклом while? Как работают циклы, что они делают, и когда я должен их использовать? Например, не может:

$i = 1; while ($i

сделать так:

$i = 1; if ($i

Ben Beri 30 янв. 2013, в 15:54
Поделиться
Почему бы не попробовать и посмотреть?
John Conde 30 янв. 2013, в 14:34

не переусердствуйте. Что, if означает в реальном мире? единовременное решение. то же самое в PHP. принять решение один раз, двигаться дальше. что значит while в реальном мире? «пока не будет выполнено какое-либо условие, продолжайте делать это . » то же самое в PHP.

Marc B 30 янв. 2013, в 14:47
Поделиться:

4 ответа

Лучший ответ

Оператор if проверяет, является ли выражение истинным или ложным, а затем запускает код внутри оператора только в том случае, если оно истинно. Код внутри цикла запускается только один раз.

if (x > y) < // this will only happen once >

Оператор while представляет собой цикл. В принципе, он продолжает выполнять код в выражении while, поскольку в то же время выражение истинно.

while (x > y) < // this will keep happening until the condition is false. >

Когда использовать цикл while:

Хотя циклы лучше всего использовать, когда вы точно не знаете, сколько раз вам может понадобиться перебирать условие — если вы точно знаете, сколько раз вы хотите протестировать условие (например, 10), тогда вы будете использовать цикл for вместо.

lifetimes 30 янв. 2013, в 15:58
Поделиться

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

Ben Beri 30 янв. 2013, в 14:42

@Jony Хотя циклы лучше всего использовать, когда вы точно не знаете, сколько раз вам, возможно, придется циклически выполнять условие — если вы точно знаете, сколько раз вы хотите проверить условие (например, 10), тогда вы будете использовать вместо цикла.

lifetimes 30 янв. 2013, в 14:45

Если вы хотите что-то делать до тех пор, пока не будет выполнено условие — например, чтение результатов из запроса к базе данных.

thetaiko 30 янв. 2013, в 14:45
Показать ещё 1 комментарий

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

Оператор if будет выполняться один раз, если условие истинно.

Отличный способ понять такие понятия, когда вы просто изучаете язык, — это попробовать их:

 echo "\n"; $i = 1; if ($i

Глава 5
Операторы

JavaScript поддерживает компактный набор операторов, который Вы можете использовать для реализации интерактивного поведения Web-страниц. В главе дан обзор этих операторов.

В главе имеются следующие разделы, в которых дан краткий обзор каждого оператора:

  • Условные операторы: if. else и switch
  • Операторы циклов: for , while , do while , label , break и continue ( label сам по себе не оператор цикла, но часто используется с этими операторами)
  • Операторы манипулирования объектами: for. in и with
  • Комментарии

Любое выражение также является оператором. См. в Главе 3 «Выражения и Операторы» полную информацию об операторах.

Используйте точку с запятой (;) для разделения операторов в коде JavaScript.

См. в книге Клиентский JavaScript. Справочник. детальную информацию об операторах данной главы.

Условный оператор это набор команд, выполняемый, если специфицированное true. JavaScript поддерживает два условных оператора : if. else и switch .

Оператор if. else

Оператор if используется для выполнения определённых операторов, если логическое условие true; не обязательный блок else выполняется, если условие false. Оператор if выглядит так:

if (condition) statements1 
>
[else statements2
> ]

condition это может быть любое выражение JavaScript, которое вычисляется в true или false. Выполняемые операторы это любые операторы JavaScript, включая вложенные if . Если Вы хотите использовать более одного оператора после операторов if или else , Вы обязаны заключать их в фигурные скобки <>.

Не путайте примитивные Boolean-значения true и false со значениями true и false объекта Boolean. Любой объект, значением которого не является undefined или null, включая объект Boolean со значением false, вычисляется в true, когда передаётся в условный оператор. Например:

var b = new Boolean(false);
if (b) // это условие вычисляется в true

Пример. В следующем примере функция checkData возвращает true, если количество символов в объекте Text равно трём; иначе выводит диалог alert и возвращает false.

function checkData () if (document.form1.threeChar.value.length == 3) return true 
> else alert("Enter exactly three characters. " +
document.form1.threeChar.value + " is not valid.")
return false
>
>

Оператор switch

Оператор switch позволяет вычислять выражение и пытается найти совпадение значения выражения с оператором label. Если совпадение найдено, программа выполняет ассоциированный оператор. Оператор switch выглядит так:

switch (expression) case label : 
statement;
break;
case label :
statement;
break;
.
default : statement;
>

Программа сначала ищет label/метку, совпадающую по значению с выражением, а затем выполняет ассоциированный оператор. Если совпадающий label не найден, программа ищет не обязательный оператор по умолчанию и, если он найден, выполняет ассоциированный оператор. Если оператор по умолчанию/default statement на найден, программа продолжает выполняться с оператора, идущего после конца switch .

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

Пример. В следующем примере, если expr вычисляется в «Bananas», программа находит совпадение с case «Bananas» и выполняет ассоциированный оператор. Если обнаружен break , программа прерывает выполнение блока switch и выполняет оператор, идущий после switch . Если break отсутствует, оператор для case «Cherries» также будет выполнен.

switch (expr) case "Oranges" : 
document.write("Oranges are $0.59 a pound.");
break;
case "Apples" :
document.write("Apples are $0.32 a pound.");
break;
case "Bananas" :
document.write("Bananas are $0.48 a pound.");
break;
case "Cherries" :
document.write("Cherries are $3.00 a pound.");
break;
default :
document.write("Sorry, we are out of " + i + ".");
>
document.write("Is there anything else you'd like?");

Цикл/loop это набор команд, которые выполняются неоднократно, пока не будет выполнено специфицированное условие. JavaScript поддерживает операторы циклов for , do while , while и label ( label сам по себе не является оператором цикла, но часто используется с этими операторами). Кроме того, Вы можете использовать операторы break и continue с операторами циклов.

Ещё один оператор, for. in , выполняет операторы циклически, но используется при работе с объектами. См. «Операторы Манипуляций с Объектами» .

Оператор for

Оператор for повторяется, пока специфицированное условие не станет false. JavaScript-цикл for похож на аналогичные циклы Java и C. Оператор for выглядит так:

for ([initialExpression]; [condition]; [incrementExpression]) statements >

При выполнении цикла for происходит следующее:

  1. Выполняется инициализирующее выражение initial-expression , если имеется. Это выражение обычно инициализирует один или более счётчиков цикла, но синтаксис допускает выражения любой сложности.
  2. Выражение condition вычисляется. Если condition даёт true, цикл выполняется. Если condition равно false, цикл for прерывается.
  3. Выполняются statements /операторы.
  4. Выполняется выражения обновления incrementExpression , и управление возвращается к шагу 2.

Пример. Эта функция содержит оператор for , подсчитывающий количество выбранных опций в прокручиваемом списке (объекте Select , который позволяет делать множественный выбор). Оператор for объявляет переменную i и инициализирует её значением 0 (нуль). Если i меньше количества опций объекта Select , выполняется следующий оператор if , а i увеличивается на 1 при каждом прохождении цикла.


function howMany(selectObject) var numberSelected=0
for (var i=0; i < selectObject.options.length; i++) if (selectObject.options[i].selected==true)
numberSelected++
>
return numberSelected
>

Choose some music types, then click the button below:

R&B
Jazz
Blues
New Age
Classical
Opera
onClick="alert ('Number of options selected: ' + howMany(document.selectForm.musicTypes))">

Оператор do. while

Оператор do. while повторяется, пока специфицированное выражение не станет false. Оператор do. while выглядит так:

do statement > while (condition)

statement выполняется как минимум один раз, так как находится перед проверяемым условием. Если condition возвращает true , цикл выполняется ещё раз. В конце каждого прохода проверяется условие. Если condition возвращает false , выполнение останавливается и управление передаётся оператору, идущему после do. while .

Пример. В следующем примере цикл do итерирует как минимум один раз, пока i не станет меньше 5.

do i+=1; 
document.write(i);
> while (i<5);

Оператор while

Оператор while выполняется, пока специфицированное условие вычисляется в true. Оператор while выглядит так:

while (condition) statements >

Если condition становится false, операторы внутри цикла перестают выполняться и управление передаётся оператору, идущему после цикла.

Проверка условия/condition выполняется перед началом каждого цикла. Если condition возвращает true, операторы выполняются и условие проверяется снова. Если condition возвращает false, выполнение прекращается и управление передаётся оператору, идущему после цикла while .

Пример 1. Следующий цикл while итерирует, пока n меньше 3:

n = 0
x = 0
while( n < 3 ) n ++
x += n
>

При каждой итерации выполняется инкремент n и обновляется значение x . Следовательно, x и n получают следующие значения:

  • После первого прохода: n = 1 и x = 1
  • После второго прохода: n = 2 и x = 3
  • После третьего прохода: n = 3 и x = 6

Пример 2: Бесконечный цикл. Проверяйте, что условие в цикле рано или поздно станет false; иначе цикл никогда не закончится. Операторы следующего цикла while выполняются бесконечно, поскольку condition никогда не станет false:

while (true) alert("Hello, world") >

Оператор label

Оператор label предоставляет оператор с идентификатором, что позволяет обратиться к нему в программе. Например, Вы можете использовать label для идентифицирования цикла, а затем использовать break или continue для указания момента, когда программа должна прервать выполнение цикла или начать новую итерацию.

Синтаксис оператора label примерно такой:

label : 
statement

Значение label это любой идентификатор JavaScript, не являющийся зарезервированным словом. statement\оператор , идентифицируемый Вами с помощью label, может быть любого типа.

Пример. Здесь label markLoop идентифицирует цикл while .

markLoop:
while (theMark == true)
doSomething();
>

Оператор break

Оператор break используется для прерывания выполнения цикла, либо операторов switch или label.

  • Когда Вы используете break с операторами while , do-while , for или switch , оператор break немедленно прерывает самый внутренний цикл или switch и передаёт управление следующему оператору.
  • Когда Вы используете break внутри оператора label, он прерывает этот оператор и передаёт управление следующему оператору. Если Вы специфицировали label при вызове break , оператор break прерывает специфицированный оператор.

Синтаксис break выглядит так:

1. break
2. break [label]

Первая форма прерывает самый внутренний цикл, switch или label; вторая форма прерывает специфицированный содержащий оператор label.

Пример. Здесь происходит итерация по элементам массива, пока не будет найден индекс элемента, значением которого является theValue :

for (i = 0; i < a.length; i++) if (a[i] = theValue); 
break;
>

Оператор continue

Оператор continue может использоваться для рестарта оператора while , do-while , for или label .

  • В операторах while или for , оператор continue прерывает текущий цикл и начинает новую итерацию (проход) цикла. В отличие от break , continue не прерывает полностью выполнение цикла. В цикле while он перескакивает на condition . В цикле for он перескакивает на increment-expression .
  • В операторе label оператор continue переходит по метке/label, которая идентифицирует оператор label . Этот тип continue рестартует оператор label или продолжает выполнение помеченного цикла со следующей итерации. continue обязан находиться в теле оператора цикла, идентифицированного label, используемым continue .

Синтаксис оператора continue выглядит так:

1. continue
2. continue [label]

Пример 1. здесь цикл while с оператором continue выполняется, если i имеет значение 3. Таким образом, n получает значения 1, 3, 7 и 12.

i = 0
n = 0
while (i < 5) i++
if (i == 3)
continue
n += i
>

Пример 2. Оператор, помеченный checkiandj , содержит оператор, помеченный checkj . Если обнаружен continue , программа прерывает текущую итерацию checkj и начинает следующую. Каждый раз при обнаружении continue оператор checkj реитерирует, пока его условие не возвратит false . Если возвращено false , выполняется остаток оператора checkiandj и checkiandj реитерирует, пока его условие не возвратит false . Если возвращено false , программа продолжает выполнение с оператора, идущего после checkiandj .

Если continue имеет метку checkiandj , программа продолжит выполнение от верха оператора checkiandj .

checkiandj : 
while (i <4) document.write(i + "");
i+=1;
checkj :
while (j>4) document.write(j + "");
j-=1;
if ((j%2)==0);
continue checkj;
document.write(j + " is odd.");
>
document.write("i = " + i + "
");
document.write("j = " + j + "
");
>

JavaScript использует операторы for. in и with для работы с объектами.

Оператор for. in

Оператор for. in итерирует специфицированную переменную по всем свойствам объекта. Для каждого отдельного свойства JavaScript выполняет специфицированные операторы. Цикл for. in выглядит так:

for (variable in object) statements >

Пример. Следующая функция принимает в качестве аргументов объект и имя объекта. Затем итерирует по всем свойствам объекта и возвращает строку - список свойств объекта и их значений.

function dump_props(obj, obj_name) var result = "" 
for (var i in obj) result += obj_name + "." + i + " = " + obj[i] + ""
>
result += ""
return result
>

Для объекта car со свойствами make и model , result будет:

car.make = Ford
car.model = Mustang

Оператор with

Оператор with устанавливает объект по умолчанию для блока операторов. JavaScript ищет неквалифицированные имена в на боре операторов для определения, являются ли имена свойствами объекта пор умолчанию. Если неквалифицированное имя совпадает со свойством, то свойство используется в операторе; иначе используется локальная или глобальная переменная.

Оператор with выглядит так:

with (object) statements >

Пример. Оператор with специфицирует, что объект Math является объектом по умолчанию. Оператор, идущий после оператора with , обращается к свойству PI и методам cos и sin без специфицирования объекта. JavaScript принимает Math как объект для этих свойств.

var a, x, y
var r=10
with (Math) a = PI * r * r
x = r * cos(PI)
y = r * sin(PI/2)
>

Комментарии являются заметками автора, разъясняющими действия кода. Комментарии игнорируются интерпретатором. JavaScript поддерживает комментарии в стиле Java:

  • Однострочный комментарии начинается с двойного слэша (//).
  • Многострочный комментарий начинается с /* и заканчивается */

Пример. Вот два комментария:

// Это однострочный комментарий.
/* Это многострочный комментарий. Он может быть любого размера, и
Вы может поместить в него что угодно. */
Оглавление | Назад | Вперёд | Индекс

Дата последнего обновления: 27 мая 1999 года.
Copyright (c) 1999 Netscape Communications Corporation

Python. Урок 5. Условные операторы и циклы

Follow us on Google Plus Follow us on rss

В этом уроке рассмотрим оператор ветвления if и операторы цикла while и for. Основная цель – это дать общее представление об этих операторах и на простых примерах показать базовые принципы работы с ними.

Условный оператор ветвления if

Оператор ветвления if позволяет выполнить определенный набор инструкций в зависимости от некоторого условия. Возможны следующие варианты использования.

1. Конструкция if

Синтаксис оператора if выглядит так.

if выражение: инструкция_1 инструкция_2 . инструкция_n

После оператора if записывается выражение. Если это выражение истинно, то выполняются инструкции, определяемые данным оператором. Выражение является истинным, если его результатом является число не равное нулю, непустой объект, либо логическое True. После выражения нужно поставить двоеточие “:”.

ВАЖНО: блок кода, который необходимо выполнить, в случае истинности выражения, отделяется четырьмя пробелами слева!

if 1: print("hello 1")

Напечатает: hello 1

a = 3 if a == 3: print("hello 2")

Напечатает: hello 2

a = 3 if a > 1: print("hello 3")

Напечатает: hello 3

lst = [1, 2, 3] if lst : print("hello 4")

Напечатает: hello 4

2. Конструкция if – else

Бывают случаи, когда необходимо предусмотреть альтернативный вариант выполнения программы. Т.е. при истинном условии нужно выполнить один набор инструкций, при ложном – другой. Для этого используется конструкция if – else.

if выражение: инструкция_1 инструкция_2 . инструкция_n else: инструкция_a инструкция_b . инструкция_x
a = 3 if a > 2: print("H") else: print("L")
a = 1 if a > 2: print("H") else: print("L")

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

a = 17 b = True if a > 10 else False print(b)

В результате выполнения такого кода будет напечатано: True

3. Конструкция if – elif – else

Для реализации выбора из нескольких альтернатив можно использовать конструкцию if – elif – else.

if выражение_1: инструкции_(блок_1) elif выражение_2: инструкции_(блок_2) elif выражение_3: инструкции_(блок_3) else: инструкции_(блок_4)
a = int(input("введите число:")) if a  0: print("Neg") elif a == 0: print("Zero") else: print("Pos")

Если пользователь введет число меньше нуля, то будет напечатано “Neg“, равное нулю – “Zero“, большее нуля – “Pos“.

Оператор цикла while

Оператор цикла while выполняет указанный набор инструкций до тех пор, пока условие цикла истинно. Истинность условия определяется также как и в операторе if. Синтаксис оператора while выглядит так.

while выражение: инструкция_1 инструкция_2 . инструкция_n

Выполняемый набор инструкций называется телом цикла.

a = 0 while a  7: print("A") a += 1 

Буква “А” будет выведена семь раз в столбик.

Пример бесконечного цикла.

a = 0 while a == 0: print("A")

Операторы break и continue

При работе с циклами используются операторы break и continue.

Оператор break предназначен для досрочного прерывания работы цикла while.

a = 0 while a >= 0: if a == 7: break a += 1 print("A")

В приведенном выше коде, выход из цикла произойдет при достижении переменной a значения 7. Если бы не было этого условия, то цикл выполнялся бы бесконечно.

Оператор continue запускает цикл заново, при этом код, расположенный после данного оператора, не выполняется.

a = -1 while a  10: a += 1 if a >= 7: continue print("A")

При запуске данного кода символ “А” будет напечатан 7 раз, несмотря на то, что всего будет выполнено 11 проходов цикла.

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

Оператор for выполняет указанный набор инструкций заданное количество раз, которое определяется количеством элементов в наборе.

for i in range(5): print("Hello")

В результате “Hello” будет выведено пять раз.

Внутри тела цикла можно использовать операторы break и continue, принцип работы их точно такой же как и в операторе while.

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

lst = [1, 3, 5, 7, 9] for i in lst: print(i ** 2)

Также можно пройти по всем буквам в строке.

word_str = "Hello, world!" for l in word_str: print(l)

Строка “Hello, world!” будет напечатана в столбик.

На этом закончим краткий обзор операторов ветвления и цикла.

P.S.

Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.

Раздел: Python Уроки по Python Метки: Python, Уроки Python

Python. Урок 5. Условные операторы и циклы : 41 комментарий

  1. Ирина 23.09.2017 Подскажите, пожалуйста, что делать, если знаки” == “и “!=” не выделяются отдельным цветом и, соответственно, не дают никакого результата?
  1. writer Автор записи 24.09.2017 Приведите пример код пожалуйста!
  1. vitek 29.07.2018 print(“0 == False”)
  1. Максим 06.08.2018 Если верно понимаю, Вы не правильно записываете команду
    Получается так, что Вы говорите программе, чтобы она описала строчное значение, указанное в “”
    В данным случае, Вам нужно применить оператор if и написать:
    if name == “0”:
    print (“False”) Таким образом вы даете программе условие, что: если переменная равна значению “0” (строчному значению)
    то выводи False
  1. writer 04.12.2018 Можно вот так:
    >>> name=[“Иван”, “ваня”, “ванюша”]
    >>> if “Иван” in name:
    print(“hello!”) hello!
  1. rrrrr 21.10.2019 nope
  1. Илья 25.05.2020 def find_NOK(number1, number2):
    if number1 < number2:
    number1, number2 = number2, number1
    for x in range(number2):
    if number1*(x+1)%number2 == 0:
    return number1*(x+1)
    return number1*number2 a, b = map (int, input().split(', '))
    print(find_NOK(a, b))
  1. writer 06.10.2019 Это l – от слова letter – буква. Хотя сейчас бы я поставил символ ‘c’ вместо нее.
  1. Айдар 09.02.2020 Решил проблему сам
  1. Jam 13.07.2020 Функция range генерирует все числа указанные в диапазоне не включая последнее.
    Поэтому:
    range(1, max(a) + 1)
  1. Надыр 30.08.2020 Там f==5

5. Операторы if, switch, while, for, do while, foreach, continue, break.

Оператор ветвления, проверяет некоторое условие и, в зависимости от результатов, выполняет определенный блок кода. В качестве условий могут использоваться любые операции возвращающие значение типа bool.

if(flag) // проверка истинности < // do something > 

Если при несоблюдении условия надо выполнить какой-то код, то к оператору if можно добавить блок else.

if(flag) < // do something > else < // do something else > 
Оператор while

Оператор цикла, выполняет блок кода, пока условие принимает значение true. Перед каждым выполнением цикла, выражение while проверяется и может выполняться от нуля(то есть вообше не выполниться) до нескольких раз.

while(flag) // проверка истинности < // do something > 

Цикл может быть прерван операторами break, return, throw или goto.

while(сonditionIsTrue) // проверка истинности < // do something if (flag) return; // если условие true цикл прерывается // continue do something > 
Оператор for

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

for (initializer; condition; iterator) < //body > 

В инициализации задаются начальные условия перед циклом. В условии происходит проверка истинности выражения. В итераторе опеределяется, что происходит после каждой итерации. Цикл так же может быть прерван операторами break, return, throw или goto.

for (int i = 0; i < value; iterator(), i++) < //do something > void iterator( ) < // do something too > 

Итератор, как и инициализация может содержать несколько выражений, разделенных запятыми, в данном случае выполнялся метод iterator() и значение переменной i инкрементировалось. Все секции в операторе for не являются обязательными. Следующий операторо создает бесконечный цикл.

for ( ; ; ) < //doing something infinitely > 
Оператор do while

Оператор цикла, в отличии от while проверка условия происходит после выполнения. То есть Оператор выполнится хотя бы один раз.

do < //do something > while(condition); 

В любой точке блока do-while можно разорвать цикл с помошью оператора break. Оператор continue позволяет пропустить блок и перейти непосредственно к оператору while. Из цикла так же можно выйти с помощью return, throw или goto.

Оператор foreach

Оператор цикла, который повторяет блок кода для каждого элемента из массива или коллекции, которые реализуют интерфейс IEnumerable или IEnumerator. Однако, его нельзя использовать для изменения массива или коллекции - для этого используется цикл for.

int[] array = new int[] < . >; //инициализация массива foreach (int element in array) //проход по каждому элементу < //do something with element > 

В любой момент в блоке foreach цикл можно прервать с помощью break, goto, return или throw, или перейти к следующей итерации с помощью continue.

Оператор switch

Оператор ветвления, более продвинутый, чем if, так как позволяет обрабатывать сразу несколько условий. После каждого блока case следует явный выход из swhith путем использования операторов break, goto или return.

int i = . //переменной i присваивается какое-то значение. switch(i) // проверка истинности < case 0: //do something break; case 1: case 2: //do something else return true; break; default: //do anything break; > 

Выражение сравнения switch(expr) может быть любым выражением, отличным от null.

Оператор break

Оператор завершает выполнение цикла в котором находится или оператора switch. Управление передается дальше идущему коду.

Оператор сontinue

Оператор передает управление следующей итерации цикла while, do, for или foreach, в котором он находится.

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

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