Перейти к содержимому

Чем отличается 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

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

АА а чем тогда while отличается от for? Он ведь тоже цикл. Зачем в javascript два цикла?

Алексей Кандрин Мудрец (16307) Не знаю про особенности цикла for в джаваскрипте. В общем случае, цикл for — это цикл шагающий от числа a к числу b шагами в k единиц. Цикл for всегда можно заменить на цикл while в этом случае. Но в питоне, например, цикл for может шагать сразу по элементам массива например a = [10, 15, 0, 3] for x in a: . // x будет по очереди принимать значения 10, 15, 0, 3. Изучайте особенности вашего языка не задавайте уж вопросов по синтаксису 0.o Это очень легко гуглится

это можно сказать одно и тоже, а можно сказать что разное, кому как нравится, вот компилятор считает например что разное

Чем отличается слово «если» от слова «пока»? Или для тебя — ничем?!

Условный оператор if в цикле while

Как в данном коде сделать так, чтобы при вводе с клавиатуры 0 данное значение просто пропускалось и цикл повторялся. Вот условие задачи:

Напишите программу для самоконтроля навыков устного счёта: пользователь вводит 6 целых чисел, после чего программа должна вывести их произведение. Чтобы перемножать числа было не слишком легко, нули не учитывайте. Гарантируется, что не все введённые числа — нули.

number = int(input('Введите число\n')) perem = 0 final = 1 while True: if number != 0: perem += 1 final *= number number = int(input('\n')) else: number = int(input('\n')) if perem == 6: print(final) 

Пытался это сделать через else , но выполнения кода всё равно прекращается.

Отслеживать

48.6k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков

Глава 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

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

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