Тарифы Услуги Сим-карты

Учимся программировать в R: логические операторы, if else, for и while. Оператор выбора if в языке C

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

Если будет такая задача, например, вывести на экран строку "всем привет" 1000 раз. То, без использования цикла, во первых это займёт много времени и во вторых, это будет смотреться не очень красиво. Поэтому циклы нужно знать на отлично , потому что они используются очень и очень часто.

В программировании существуют четыре цикла, это while, do-while, for и foreach . Каждый из них имеет свой синтаксис и каждый используется в определённых случаях.

Чаще всего используются циклы for и foreach, затем while, а цикл do-while встречается очень редко.

И начнём мы с цикла while.

Синтаксис цикла while следующий:


Сначала объявляем переменную i, которая является счётчиком и внутри цикла мы этот счётчик инкрементируем. Внутри круглых скобок пишем условие входа/выхода из цикла.

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

Для примера выведем строку "Всем привет!" 10 раз.

Var i = 0; while(i "); i++; }

Переменная i, может начаться как с 0 так и с 1 или с другого любого числа.

Условие выхода является в тоже время и условием входа. Цикл работает следующим образом: Сначала проверяется если переменная i, меньше 10, и если условие истина, то мы входим в цикл, иначе, нет. В данном случае если переменная i будет равна 30, например, то цикл не выполнится, потому что 30 не меньше 10.

Зашли цикл, вывели строчку "Всем привет", инкрементировали счётчик и опять переходим к условию, где опять проверяем если значение переменной i, меньше 10, то мы входим в цикл, иначе выходим из него. И так происходит до того момента когда условие входа станет лож, то есть значение переменной i будет 10. 10 не меньше 10, поэтому мы уже не входим в цикл, а идём дальше.

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

С циклом while разобрались, теперь перейдём к циклу do-while.

Синтаксис цикла do-while следующий:


Разница между циклом while и do-while состоит в том, что цикл do-while может выполниться хотя бы один раз, независимости от условия, тогда как у цикла while если условие лож, то он вообще не выполнится.

Замечание! Как и у цикла while, не забудьте инкрементировать счётчик i.

Перейдём к практике. Для примера посчитаем произведение чисел от 1 до 10.

Var i = 1; var production = 1; do{ production *= i; i++; }while(i

Результатом будет число 3628800. На первом шаге мы сразу вошли в цикл, несмотря на его условие, где выполнилось операция production *= i (это тоже самое что и production = production * 1). Потом инкрементируем счётчик. После инкрементации он имеет значение 2. И в конце проверяем условие, если значение счётчика меньше либо равно 10, то мы идём к следующей итерации цикла, иначе мы выходим из цикла и идём дальше.

Цикл for

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

Синтаксис цикла for следующий:


Для лучшего понимания решим простую задачу. Допустим нам нужно посчитать сумму чисел от 1 до 1000 с помощью цикла for.

Var summa = 0; for(var i = 1; i

Сохраняем документ, открываем его в браузере и видим, что результат равен 500500.

Замечание! Если в цикле находится только одни оператор, то фигурные скобки использовать необязательно.

Для демонстрации выведем на экран 5 раз, какую то строку, например " Здравствуйте! ".

For(var i = 1; i

Замечание! После выполнения цикла в переменной i, остаётся последнее значение.

Теперь решим задачу чуть по сложнее, например нам нужно вывести строку "Привет" 100 раз. И для того чтобы это все не вывелось в один ряд, то после каждой 10-ой итерации, перейдём на новую строку. И в конце выведем значение переменной i.

For(var i = 1; i <= 100; i++){ document.write("привет!"); if(i % 10 == 0)  document.write("
"); } document.write("

Переменная i = " + i + "

"); // i = 101

Цикл foreach обычно используется для перебора объектов и массивов. Поэтому о нем я расскажу в статье описывающая работу с массивами.

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

Оператор continue позволяет прервать текущую итерацию цикла, и перейти к следующей.

Для лучшего понимания, тоже решим простую задачу. Допустим, мы хотим посчитать сумму нечётных чисел с 1 до 20. И когда дойдём до 15-ой итерации, то выйдем из цикла.

Var summa = 0; for(var i = 1; i <= 20; i++){ //Пропускаем текущею итерацию цикла if(i % 2 == 0) continue; summa += i; //Выходим совсем из цикла. if(i == 15) break; document.write(i + ". Итерация
"); } document.write("

summa = " + summa + "

"); //summa = 64

Сохраняем документ, открываем его в браузере и смотрим на результат.

Для тренировки попробуйте изменить написанный скрипт, таким образом, чтобы он посчитал сумму чётных чисел.

На этом заканчивается эта статья. Теперь Вы знаете синтаксис циклов while, do-while, for и как с ними работать . Также познакомились с операторами break и continue .

C++ provides a standard set of operators for selecting a selection and cycles.

The keywords related to the construction of branching conditions for the code are:

  • switch
  • break
  • default

The key words relating to the construction of cycles are:

  • while
  • break
  • continue

Condition statements

The If statement

The condition construct using the if statement is formed as follows:

Int x = 56; bool check_x() { if (x > 0) return true; return false; }

In this case, the condition is placed in parentheses after the if statement. In this construction, the return code is true; Will be executed if x is greater than 0. next line return false; No longer applies to the code that will be executed when the condition is met. In condition constructs, if this condition is met, only one line of code will be executed if the code is not enclosed in curly brackets, that is, if the body of the code executed on condition is not formed. Let"s consider two variants of the code:

First option:

Int x = 56; bool check_x() { if (x > 0) x = 0; return true; return false; }

In this code, return true; Will always be executed, because only the string x = 0 is relevant to the code being executed;

Second option:

Int x = 56; bool check_x() { if (x > 0) { x = 0; return true; } return false; }

In this code, return true; Will be satisfied only if the condition x> 0 is satisfied.

The else statement

The else statement is used in conjunction with the if statement to form a sequence of conditions.

Int x = 56; bool check_x() { if (x > 0) { x = 0; return true; } else if (x < 0) { x = 0; return false; } else { return false; } }

The else statement can be used to add a new condition if the previous condition, else if statement, fails. And as a final code in a sequence of conditions, if the previous conditions were not met. Alternatively, it is possible to use the braces for the code body if the code fits in one line.

Statements switch, case, break, default

The switch case construct is used to select the branching of the code, in the condition of which the choice is made by integer values. This means that the switch case can be used for just integer values, enumerations, and selections by the symbol code.

Int x = 100; bool check_x() { switch (x) { case 0: return true; case 50: x = 0: break; case 100: return false; default: return false; }

In the above code, the variable x is checked to be equal to the numbers 0, 50, 100. The default operator selects the code that is executed if none of the conditions are met. Note also that in the code block with case 50: added a break statement, this statement exits the condition, while the return statement exits the function. If you do not add a break statement, the code execution will continue in case 100:. Due to this peculiarity of switch case construction, it is possible to combine conditions for which it is necessary to execute the same code. For example:

Int x = 100; bool check_x() { switch (x) { case 0: case 50: case 100: return true; default: return false; } }

Thus, for x equal to 0, 50, 100, the function returns true, while for all other values the function returns false.

Also, the code for selecting case in this construct can be wrapped in blocks of code, which will limit the scope and use declarations of variables with the same name.

Int x = 100; int check_x() { switch (x) { case 0: { int y = 1; return y; } case 50: { int y = 2; return y; } case 100: { int y = 3; return y; } default: return x; } }

Thus, by restricting the scope, we are able to use variables with the same names in case conditions. But do not forget that outside the scope, bounded by curly brackets, the variable y will not exist in this case.

Cycle operators

The while statement

The while statement repeats the code in its body as long as the condition is met. For example:

Int i = 0; while (i < 10) { i = i + 1; }

In this code i will be 10 after the loop.

The do statement

The do statement is used in conjunction with the while statement and allows the loop body to be executed at least once, before the loop condition is checked. For example:

Int i = 15; do { i = i - 5; std::cout << i << std::endl; } while (i > 0 && i < 13);

In this code, the variable I does not initially match the condition and in the usual while loop the body code of the loop has not been executed, but since the do-while loop is used, the test will be performed after the loop body is executed. As a result, the output of std:: cout is:

You can ask, why is there 0 in the output? It does not fit the condition. Again, due to the fact that the check is performed after the code is executed in the body of the loop. That is, the body of the loop has been executed, and then a check is performed, the result of which the cycle completes its work.

The break statement

As in switch case, this statement can be used in loops. This is necessary in order to exit the loop, before the cycle condition is fulfilled. For example:

Int i = 15; while (i < 50) { if (i < 0) { break; } i = i - 5; }

In this artificial example, an eternal cycle would result because the variable i decreases instead of increasing, and by the condition of the loop, the output will be produced only if i is greater than 50. But thanks to the break statement and the test condition for the negative value of the variable i The execution of the program will exit this loop as soon as i becomes less than 0.

The continue statement

This operator allows you to abort the iteration of a loop and start a new iteration of the loop before executing all the code in the body of the loop. For example:

Int i = 0; while (i < 5) { if (i == 3) { i = i + 1; continue; } std::cout << i << std::endl; i = i + 1; }

When executing this code, we get the following output:

That is, the output of number 3 will be omitted.

The for statement

Loops with the for statement allow you to combine the initialization of variables, the condition and the change of these variables.

That is, the following while loop

Int i = 0; while (i < 10) {

It will be equivalent to the following for loop:

For (int i = 0; i < 10; i++) { // ToDo Something }

The advantage of this for loop will be that the variable I will be in the local scope of the for loop.

For loops can be initialized with several variables of the same type. For example:

For (int i = 0, *p = &i; i < 9; i += 2) { std::cout << i << ":" << *p << " "; }

Also, the condition can be declaration, initialization of a variable. For example:

Char cstr = "Hello"; for (int n = 0; char c = cstr[n]; ++n) { std::cout << c; }

Given the C ++ standard 11, the auto variable can be used as the variable type, which allows you to output the type of the variable from the initializer:

Std::vector v = {3, 1, 4, 1, 5, 9}; for (auto iter = v.begin(); iter != v.end(); ++iter) { std::cout << *iter << " "; }

Also an interesting point is that the initializer, condition and block of change can be the expression:

Int n = 0; for (std::cout << "Loop start\n"; std::cout << "Loop test\n"; std::cout << "Iteration " << ++n << "\n") { if(n > 1) break; }

Beginning with the C ++ 11 standard, for loops, iteration has been added for containers that support iteration. For example, the vector container from the standard library:

Std::vector v = {0, 1, 2, 3, 4, 5}; for (const int& i: v) std::cout << i << " ";

In this code, the loop construction is as follows:

For (Retrieved from the container at each iteration of the object: container) { // Body of the cycle }

Also, Range-based for loops support the auto statement. For example:

Std::vector v = {0, 1, 2, 3, 4, 5}; for (auto& i: v) std::cout << i << " ";

В этой статье мы продолжим изучать основы PHP и поговорим о циклах и условиях. Первым делом рассмотрим конструкцию IF – ELSE, которая позволяет выполнять определенные действия в зависимости от того, выполняется ли условие или нет. Затем мы перейдем к рассмотрению циклов. Всего будет рассмотрено три конструкции циклов – это циклы WHILE, DO – WHILE и цикл FOR.

Основы PHP. Конструкции IF – ELSE

Конструкция IF – ELSE позволяет выполнять определенные действия в зависимости от того, выполняются ли условия или нет. Данную конструкцию можно широко применять на практике, например, для создания простой защиты какого-то раздела сайта при помощи пароля. Если пользователь вводит правильный пароль, то ему предоставляется доступ в закрытый раздел. В противном случае мы можем выдать ему, например, сообщение об ошибке.

На практике конструкция IF – ELSE имеет следующий вид:

Итак, давайте прокомментируем. Сначала переменным присваиваются значения. Затем ставится условие. Если переменная $a равняется переменной $b, то выполняется код, который находится в первых фигурных скобках. Если условие не выполняется, то все что находится в первых фигурных скобках пропускается и выполняется код, который находится в фигурных скобках после ELSE. Как видите все банально просто и понятно.

Кроме простых условий в PHP можно применять и несколько условий и конструкций IF – ELSE. Для примера давайте рассмотрим следующий код:

"; if ($e != $c) { echo "Переменная Е не равняется переменной С
"; } else { echo "Переменная Е равняется переменной С
"; } } else { echo "Переменные не равны
"; } ?>

Вначале мы присваиваем переменным определенные значения. Затем идут вложенные конструкции IF – ELSE. Как видите в PHP каждая конструкция IF – ELSE может содержать в себе другие такие же конструкции, количество которых, в принципе, не ограничено.

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

  • == — в PHP этот знак означает равно . Знак «=» в PHP является знаком присваивания.
  • != не равно , например, $a != $b – переменная $a не равняется переменной $b.
  • and или && — означают И , например, $a != $b && $c != $d – переменная $a не равняется переменной $b и переменная $c не равняется переменной $d.
  • or или || — означают ИЛИ , например, $a != $b || $c != $d — переменная $a не равняется переменной $b или переменная $c не равняется переменной $d.

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

Если переменная $a равняется переменной $b и переменная $c равняется переменной $d или переменная $e равняется переменной $d, то выводим на экран сообщение «Переменные равны» и делаем перенос строки. Затем делаем еще одну проверку. Если переменная $e не равняется переменной $c, то выводим сообщение «Переменная Е не равняется переменной С» и делаем перенос строки. Если же условие не выполняется, то выводим «Переменная Е равняется переменной С». Если же первое условие не выполняется, то весь код в первых фигурных скобках пропускается и сразу выводится сообщение «Переменные не равны» и делается перенос строки (тег
).

На этом мы заканчиваем рассматривать конструкцию IF – ELSE. Надеюсь, вы поняли всю суть описанного выше и мы переходим к дальнейшему изучению основ PHP – изучению циклов.

Основы PHP. Циклы WHILE и DO – WHILE

Циклы в PHP имеют очень широкое применение, так как позволяют реализовать множество функций, которые присутствуют на каждом динамическом сайте. Одной из самых распространенных задач, которые решаются при помощи циклов есть, например, вывод последних новостей сайта. Вся суть циклов состоит в том, чтобы выполнять определенное действие до тех пор, пока выполняется условие. Для примера решим задачу по вычислению суммы чисел от одного до 10. В данном случае количество чисел может быть любым, но в качестве примера возьмем число 10, так как в этом случае проще будет проверить результат.

Для решения этой задачи будет использован цикл WHILE . Код для вычисления суммы чисел от одного до десяти будет следующим:

Первым делом мы заводим переменные $s (сумма) и $i (счетчик) и присваиваем им значения. Затем мы прописываем цикл WHILE, в условии которого указываем, что цикл нужно выполнять до тех пор, пока переменная $i (счетчик) будет меньше или равно 10. В тело цикла прописываем значение переменной $s и увеличиваем счетчик $i на единицу. Делается это при помощи двух знаков + ($i++) или простым добавлением единицы ($i = $i + 1). Значение счетчика нужно изменять в обязательном порядке во избежание зацикливания (бесконечное выполнение цикла).

Теперь давайте рассмотрим, как же выполняется программа. Сначала мы присваиваем значение переменным. Затем в цикле проверяется условие. Если оно выполняется, то выполняется код, который находится в теле цикла (в фигурных скобках). После выполнения тела цикла и увеличения значения счетчика, снова проверяется условие и, если оно выполняется, цикл опять повторяется. Повторение цикла будет происходить до тех пор, пока будет выполняться условие. После отработки цикла результат выводится на экран при помощи оператора вывода Echo. Более подробно о переменных и операторах вывода вы можете ознакомиться в статье « ».

Аналогичным образом работает и цикл DO – WHILE. Единственное отличие здесь в том, что проверка условий выполняется после выполнения цикла. Таким образом, выполнение цикла в любом случае произойдет минимум один раз. На практике цикл DO – WHILE выглядит следующим образом:

Как видите, в решении задачи по подсчету суммы чисел от одного до десяти при помощи цикла DO – WHILE сначала присваиваются значения переменным. Затем выполняется код и увеличивается значение счетчика, и лишь после всего этого идет проверка условия. Если оно выполняется, то цикл снова повторяется. В противном случае результат выводится на экран при помощи оператора вывода.

Основы PHP. Цикл FOR

При помощи цикла FOR можно выполнять все те же действия, что и при помощи цикла WHILE. Он также применяется при создании сайтов но, на мой взгляд, в меньшей мере, чем цикл WHILE. Лично я предпочитаю последний, но в рамках этой статьи мы рассмотрим и цикл FOR, так как он есть частью языка PHP и его нужно знать.

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

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

For (инициализация; условие; действие после выполнения одного цикла) { Тело цикла (действие) }

Как видите, синтаксис PHP похож на синтаксис C++. Если вы изучали C++, то вам будет проще освоить PHP. Но даже если вы не изучали до этого других языков программирования, вы без проблем сможете овладеть основами PHP, так как он является одним из самых простых языков программирования.

На этом данная статья об основах PHP подошла к концу. Если вам понравился мой стиль написания статей и само их содержимое, вы можете подписаться на новости сайта любым удобным для вас способом в пункте «Подписка».

На этом все. Удачи вам и до скорых встреч на страницах блога

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

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

Перед тем как начать разбираться в структуре оператора if , стоит обратить внимание на такие значения как ИСТИНА и ЛОЖЬ в контексте программирования и компьютерной терминологии.

Истинное значение (ИСТИНА ) имеет значение отличное от нуля, ЛОЖЬ эквивалентна нулю. При использовании операторов сравнения, оператор будет возвращать единицу, если выражение сравнения - истинно, или - 0, если условное выражение ложно. Например, выражение 3 == 2 вернет значение 0, так как три не равно двум. Выражение 5 == 5 оценивается как истинное и вернет значение 1. Если вам сложно это понять, попробуйте сделать вывод на экран этих выражений, например: printf ("%d", 7 == 0);

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

Скорее всего вы знакомы с этими операторами сравнения, но на всякий случай, я показал их в таблице выше. Они не должны быть сложными для вашего понимания, большинство из этих операторов вы изучили в школе на уроках математики. Теперь вы понимаете, что такое ИСТИНА и ЛОЖЬ , пора испытать оператор выбора if в бою. Структура if:

If (условное выражение) // тут располагается один оператор, который выполнится, если условное выражение - истинно

Вот вам простой пример использования оператора if:

If (7 > 6) printf("Семь больше шести");

В этом примере программа оценивает условное выражение — «семь больше шести?» Чтобы увидеть результат работы этого фрагмента кода просто вставьте его в функцию main() и не забудьте включить заголовок stdio.h , запускаем программу и видим результат - true . Конструкция оператора выбора if c фигурными скобочками:

If (TRUE) { /* весь код который помещен внутрь скобок - выполнится */ }

Если не использовать фигурные скобочки, то к телу оператора if будет относиться только один, первый оператор. Если же необходимо управлять несколькими операторами, то необходимо поместить их в фигурные скобочки. Я рекомендую всегда ставить скобки, после объявления if - это хороший тон программирования и вы никогда не запутаетесь в своем коде, так как такое объявление наиболее понятное.

Оператор else

Иногда, когда условное выражение - ложное, было бы удобно, чтобы выполнялся некоторый код, отличный от того кода,который выполняется при ИСТИННОМ условии. Как же это делается?
Вот пример использования оператора if else:

If (TRUE) { /* выполняется этот код,если условие истинно */ } else { /* выполняется этот код,если условие ложно */ }

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

Обычно операторы else if используют, когда необходим множественный выбор, то есть например определены несколько условий, которые одновременно могут быть истинными, но нам необходимо только одно истинное условное выражение. Вы можете использовать оператор if else сразу после оператора выбора if , после его тела. В таком случае, если условие первого оператора выбора - ИСТИННО , тогда конструкция else if будет игнорироваться, тогда как в противном случае, если условие первого оператора выбора - ЛОЖНО , начнет выполнятся проверка в конструкции else if . То есть если условие одного оператора if будет истинно, то другие проверяться не будут. Теперь чтобы все это хорошо закрепить в голове и понять, давайте рассмотрим простой пример с использование конструкций операторов выбора.

#include #include int main() { int age; // без переменной никак... printf("Сколько вам лет? "); // спрашиваем пользователя о его возрасте scanf("%d", &age); // ввод пользователем количества лет if (age < 100) { // если введенный возраст меньше 100 printf ("Вы очень молоды!\n"); // просто показываем что программа сработала верно... } else if (age == 100) { // используем else для примера printf("Молодость уже позади\n"); // \n - символ перевода на новую строку. } else { printf("Столько не живут\n"); // если ни одно из выше-перечисленных условий не подошло, то программа покажет этот вариант ответа } return 0; }

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

Логические операторы позволяют создавать более сложные условные выражения. Например, если вы хотите проверить, является ли ваша переменная больше 0 но меньше 10, в таком случае вам достаточно воспользоваться логическим оператором - И. Вот так это делается - var > 0 and var < 10 . В языке СИ есть точно такой же же оператор, только обозначается он иначе — && .
При использовании операторов if часто необходимо проверить несколько различных условий, поэтому очень важно понимать логические операторы OR, NOT и AND. Логические операторы работают точно так же как и операторы сравнения: они возвращают 0, если имеют ложное значение или 1, если логическое выражение - истинное.
Подробнее о логических операциях вы можете прочитать в .