Сайт о телевидении

Сайт о телевидении

» » Учимся программировать в R: логические операторы, if else, for и while. Циклы for и while, операторы break и continue, волшебное слово else

Учимся программировать в R: логические операторы, if else, for и while. Циклы for и while, операторы break и continue, волшебное слово else

В этой статье мы продолжим изучать основы 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, если логическое выражение - истинное.
Подробнее о логических операциях вы можете прочитать в .

В некоторых источниках говорится, что оператор выбора if else — самостоятельный оператор. Но это не так, if else — это всего лишь форма записи оператора выбора if . Оператор if else позволяет определить программисту действие, когда условие истинно и альтернативное действие, когда условие ложно. Тогда как if позволял определить действие при истинном условии.

Синтаксис записи оператора выбора if else:

If (/*проверяемое условие*/) { /*тело оператора выбора 1*/; } else { /*тело оператора выбора 2*/; }

Читается так: «Если проверяемое условие истинно, то выполняется тело оператора выбора 1 , иначе (то есть проверяемое условие ложно) выполняется тело оператора выбора 2 «. Обратите внимание на то, как записан оператор if else . Слово else специально сдвинуто вправо для того чтобы программный код был понятен и его было удобно читать.

Рассмотрим задачу с предыдущей темы, с использованием if else . Напомню условие задачи: «Даны два числа, необходимо их сравнить».

// if_else.cpp: определяет точку входа для консольного приложения. #include "stdafx.h" #include using namespace std; int main(int argc, char* argv) { int a, b; cout << "Vvedite pervoe chislo: "; cin >> a; cout << "Vvedite vtoroe chislo: "; cin >> b; if (a >= b) // если a больше либо равно b, то { cout << a << " >= " << b << endl; } else // иначе { cout << a << " <= " << b << endl; } system("pause"); return 0; }

В данном коде нас интересуют строки 14-20 . Эти строки читаются так: если a (первое число) больше либо равно b (второе число), то выполнить оператор вывода в строке 16

Cout << a << " >= " << b << endl;

иначе выполнить оператор вывода в строке 19

Cout << a << " <= " << b << endl;

В данном ифе мы используем операции соотношений >= и <= . Условие перехода не совсем правильно, так как условие будет ложно только в том случае, если первое число будет меньше второго, во всех остальных случаях условие истинно. Значит, строку 19 нужно записать так

cout << a << " < " << b << endl; // в кавычках записать не меньше или равно, а просто меньше.

А вот так сработала программа (см. Рисунок 1).

Vvedite pervoe chislo: 15 Vvedite vtoroe chislo: -4 15 >= -4 Для продолжения нажмите любую клавишу. . .

Рисунок 1 — Оператор выбора if else

Покажу еще один пример использования операторов выбора if else (так называемые вложенные операторы if else для множественного выбора).

Условие задачи:
Составить алгоритм находящий значение y, если у=х, при х<0; у=0, при 0<=х<30; у=х 2 , при х>=30;

// inif_else.cpp: определяет точку входа для консольного приложения. #include "stdafx.h" #include using namespace std; int main(int argc, char* argv) { int x, y; cout << "Vvedite x: "; cin >> x; if (x < 0) { y = x; // выполняется, если х меньше нуля } else { if ((x >= 0) && (x < 30)) { y = 0; // выполняется, если х больше либо равно нуля и меньше 30 } else { if (x >= 30) { y = x * x; // выполняется, если х больше либо равен 30 } } } cout << "y=" << y << endl; system("pause"); return 0; }

В данной задаче возможны три случая:
1-й случай: х < 0 ;
2-й случай: х лежит в пределах от 0 (включая 0) до 30;
3-й случай: х больше или равен 30.

Заметьте новшество!! В 17 строке такую запись: if ((x >= 0) && (x< 30)) , я использовал символы && — это . Операция логического И && необходима для объединения нескольких простых условий в одно составное. В нашем случае необходимо проверить истинность двух условий: первое – x >= 0 , второе – х < 30 . Все проверяемое условие будет истинно, если истинны два простых условия. В математике правильной записью считается такая запись: 0 <= x < 30 , а в С++ правильной записью считается вот такая запись: (x >= 0) && (x < 30) или такая 0 <= x && x < 30 . Кстати круглые скобочки () && () не обязательны, так как условия простые, но для уверенности, я прописываю, всегда, данные скобочки и вам советую.

Разбор частного случая:

Допустим, пользователь ввел число 31. Начиная со строки 12 , выполняется проверка условий. Читается так: «Если х (31 в нашем случае) < 0, то выполнить оператор в строке 14 ». Но так как 31 > 0 условие ложно мы переходим к слову else (иначе) строка 15 . Дальше проверяем, входит ли число 31 в заданный интервал. Читается так: если х>=0 и х<30 то выполнить оператор в строке 19 . Но так как число 31 не входит в заданный интервал, то условие ложно. Подробно строка 17 : программа сначала проверит первое простое условие х >= 0 – оно истинно, а если первое истинно, то программа перейдет к проверке второго простого условия х < 30 – оно ложно. Следовательно всё составное условие ложно, ведь в составном условии у нас используется логическая операция && , а это значит, что все составное условие истинно только в том случае, когда истинны оба простых условия. Переходим к else (иначе), здесь у нас последний if , (строка 22 ). Выполняется проверка х >= 30 . Читается так: Если х >= 30 то выполнить оператор, находящийся в строке 24 . Наконец-то условие истинно, итак выполнился оператор в строке 24 . И строка 28 печатает получившееся значение. Ну, все, рассмотрели программу по мельчайшим деталям. Результат работы программы, в случае, если пользователь ввел число 31 (см. Рисунок 2)

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

Цикл - это разновидность управляющей конструкции, предназначенная для организации многократного исполнения набора инструкций.

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

Операторы сравнения

Большинство операторов сравнения применимы к числовым значениям. Всё это бинарные операторы, имеющие два числовых аргумента, но возвращающие логическое значение.

  • > оператор «больше»
  • >= оператор «больше или равно»
  • < оператор «меньше»
  • <= оператор «меньше или равно»
  • != оператор «не равно»
  • == оператор эквивалентности (равенства)

Последние два оператора сравнения применяются не только для числовых значений, но для логических. Сравнение двух текстовых операторов выполняется с использованием методов equals(String object), equalsIgnoreCase(String object).

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

Логические операторы

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

У логических операторов следующий приоритет: отрицание, конъюнкция, дизъюнкция.

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

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

Boolean a = true; boolean b; boolean c; b = a || true; // b истинно b = !b; // b ложно System.out.println(b); // вывод в консоль значения false a = a || b; // a истинно c = a && (a || b); // с истинно System.out.println(c); // вывод в консоль значения true boolean m; boolean w; m = 5 >= 4; // истина m = 5 != 5 || false; // ложь w = m == false; // истина System.out.println(w);// вывод в консоль значения true

Операторы ветвления

Синтаксис оператора ветвления if else

If (условие){ ... // составной оператор №1 } else { ... // составной оператор №2 }

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

If (условие) ... // простой оператор №1; else ... простой оператор №2;

Основное предназначение оператора ветвления – это реализация разветвляющихся алгоритмов. Например, фрагмент программы, для вычисления функции: Y(x) = x*x, при x < 0 и Y(x) = 2*x, при x >= 0

Int x, y; // Чтение значений x, y из консоли Scanner in = new Scanner(System.in); System.out.println("Enter x:"); x = in.nextLine(); System.out.println("Enter y:"); y = in.nextLine(); if (x < 0) y = x*x; else y = 2*x; System.out.printf ("Результат: %i\n", y);

При построении программ с несколькими подряд идущими операторами ветвления необходимо учитывать следующее правило: оператор else относится к последнему оператору if . Например, рассмотрим фрагмент программы:

If (x > 10.0) y = 2*x + 5; if (y < z) y = fabs(x); else y = 2.5*x;

Если необходимо нарушить этот порядок (т.е. ветвь else отнести к первому оператору if ), то необходимо второй оператор if включить в составной оператор прямой ветви первого оператора if:

If (x > 10.0) { y = 2*x + 5; if(y < z) y = fabs(x); } else y = 2.5*x;

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

If (условие № 1) { составной оператор № 1 } else if (условие № 2) { составной оператор № 2 } ... { } else if (условие № N) { составной оператор № N } else { составной оператор № N+1 }

Многовариантное ветвление, оператор switch

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

Switch (choice) { case значение1: break; case значение2: break; case значением: break; default: }

Выполнение кода начинается с метки case , соответствующей значению выражения choice , и продолжается до следующего оператора break или конца оператора switch . Если ни одна метка не совпадает со значением переменной, выполняется раздел default, если он предусмотрен.

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

Отметим, что оператор default необязателен. В случае, когда ни один из операторов case не соответствует значению выражения и в switch отсутствует оператор default выполнение программы продолжается с оператора, следующего за оператором switch.

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

Циклы java

В java существует два типа циклов:

  • цикл типа «пока» - while и do…while
  • типа «n-раз» - for (инициализация; условие; итерация)

Первый тип «пока» предназначен для повторения какого-то действия до тех пор, пока выполняется некоторое условие. Пример: увеличивать значение переменной на 3 до тех пор, пока оно не станет трёхзначным.

Второй тип «n-раз» предназначен для повторения каких-то действий заранее известное количество раз. Пример: найти факториал числа 6.

Циклы while и do…while

Оператор while повторяет указанные действия до тех пор, пока его выражение имеет истинное значение.

Синтаксис цикла while

While (логическое выражение) { ... // тело цикла }

Пример вывода в консоль значений массива:

String lst = {"Зима", "Лето", "Осень", "Весна"}; int i = 0; while(i++ < lst.length){ System.out.print(lst[i] + " "); }

Условие необходимости повторения цикла проверяется перед каждым шагом цикла, в том числе перед самым первым.

Java предлагает также возможность использования цикла с постпроверкой условия. Для его записи используется конструкция из операторов do…while .

Do { ... // тело цикла } while (логическое выражение)

Следующий цикл будет выполнен 4 раза, и в консоль будет выведено «1 2 3 4 »:

Int i = 0; do { i++; System.out.print(Integer.valueOf(i) + " "); } while(5 > i);

Тело цикла do…while выполняется по крайней мере один раз. Этот оператор удобно использовать, когда некоторое действие в программе нужно выполнить по крайней мере единожды, но при некоторых условиях придётся повторять его многократно.

Цикл for

Оператор for содержит три параметра: параметр инициализации, параметр повторения, параметр итерации.

Синтаксис цикла for

For (инициализация; условие; итерация) { // тело цикла, т. е. повторяемые циклично действия }

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

Представленная программа выводит в консоль значения массива:

String lst = {"Зима", "Лето", "Осень", "Весна"}; // в прямом порядке for (int i = 0; i < lst.length; i++) { System.out.print(lsti] + " "); } // в обратном порядке for (int i = (lst.length - 1); i >= 0; i--) { System.out.print(lsti] + " "); }

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

Представленный код выведет в консоль такую последовательность «0 -1 -4 -9 -16 -25»

For(int a = 0, b = 0; a - b <= 10; a++, b--){ System.out.print(" " + a*b); }

Прерывание цикла, break

Для досрочного прерывания цикла необходимо использовать оператор break . При этом происходит моментальный выход из цикла; текущий шаг не будет завершен. Т.е. если после break присутствовали какие-то ещё операторы, то они не выполнятся.

Примеры прерывания циклов:

// Прерывание цикла for for (int a = 1; a <= 10; a++){ if (a == 5) break; System.out.println("a = " + a); } // Прерывание цикла while int s = 100; while(true) { System.out.print(s +" "); s = s / 2; if (s == 0) break; System.out.println("s = " + s); }

Прерывание цикла, continue

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

// Прерывание цикла while int s = 100; while(true) { System.out.print(s +" "); s = s / 2; if (s == 25) continue; else if (s == 0) { break; } else System.out.println("s = " + s); }

В примере при значении s равном 25 очередная итерация цикла будет прервана и управление будет передано в начало цикла.

Если оператор continue используется в цикле for , то он передаст управление оператору увеличения счетчика цикла.

На занятии рассматривается условный оператор в Паскале (if ). Объясняется, как использовать несколько условий в одной конструкции (AND и OR ). Рассмотриваются примеры работы с оператором

Напоминаем, что данный сайт не претендует на полное изложение информации по теме. Целью портала является предоставление возможности усваивания материала на основе готовых решенных примеров по теме «Язык программирования Pascal» с практическими заданиями для закрепления материала. Представленные на сайте сайт задания по Паскалю выстроены последовательно по мере увеличения их сложности. Сайт сайт может быть использован учителями и преподавателями в качестве вспомогательного наглядного пособия.

До рассмотрения данной темы в основном использовались линейные алгоритмы в Паскале, характерные для весьма простых задач, когда действия (операторы) выполняются последовательно, одно за другим. Более сложные алгоритмы предусматривают использование конструкция ветвления.

Блок-схема условного оператора:

Условный оператор в Паскале имеет следующий синтаксис:

Сокращенный вариант:

if условие then оператор;

Полный вариант:

if условие then оператор else оператор;

Условный оператор в Паскале — if — служит для организации хода задачи таким образом, при котором изменяется последовательность выполнения операторов в зависимости от какого-либо логического условия. Логическое условие может принимать одно из двух значений: либо true (истина), либо false (ложь), соответственно, оно может быть либо истинным, либо ложным.

Составной оператор

Если при истинном условии необходимо выполнять несколько операторов, то их по правилам языка Pascal необходимо заключать в блок , начинающийся со служебного слова begin и заканчивающегося служебным словом end . Такой блок принято называть операторными скобками , а данную конструкцию — составным оператором :

Операторные скобки и составной оператор в Паскале:

if логическое выражение then begin оператор1; оператор2; end else begin оператор1; оператор2; end;

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

IF THEN ELSE
ЕСЛИ ТО ИНАЧЕ


В условии (в логическом выражении) используются операторы отношения.
Рассмотрим список операторов отношения Паскаля:

  • больше >
  • меньше
  • больше или равно в Pascal >=
  • меньше либо равно в Pascal
  • сравнение в Pascal =
  • не равно в Pascal

Пример: найти наибольшее из двух чисел

Вариант 1 Вариант 2


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

Пример: вычислить значение переменной у по одной из двух ветвей

Показать решение:

var x,y:real; begin writeln ("введите х"); read(x); if x>0 then y:=ln(x) else y:=exp(x); writeln ("y=", y:6:2) {итоговое число будет занимать 6 позиций, и в нем будет 2 знака после запятой} end.

Обратите внимание на то, как в данном примере выводится y . При выводе переменных типа в pascal, можно использовать так называемый форматированный вывод , или запись с двумя двоеточиями:
y:6:2
- цифра после первого двоеточия (6) указывает на то, сколько знаков будет занимать число при выводе на экран
- цифра после второго двоеточия (2) указывает на то, сколько знаков после запятой вещественного числа будет выводиться

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

Задача 0. Вычислить значение переменной у по одной из двух ветвей:

Задача 1. В компьютер вводятся два числа. Если первое больше второго, то вычислить их сумму, иначе - произведение. После этого компьютер должен напечатать результат и текст ЗАДАЧА РЕШЕНА

Задача 2. Дракон каждый год отращивает по три головы, но после того, как ему исполнится 100 лет - только по две. Сколько голов и глаз у дракона, которому N лет?

Логические операции в Паскале (в логическом выражении)

Когда необходимо использовать двойное условие в Pascal, то понадобятся логические операции.

  • Логическая операция AND (И), поставленная между двумя условиями, говорит о том, что должны выполняться сразу оба эти условия (должны быть истинными). Логический смысл операции - "конъюнкция".
  • Поставленный между двумя условиями, знак OR (ИЛИ) говорит о том, что достаточно, если будет выполняться хотя бы одно из них (одно из двух условий истинно). Логический смысл операции - "дизъюнкция".
  • На языке Паскаль XOR - знак логической операции, имеющий смысл "строгая дизъюнкция" и указывающий на то, что необходимо, чтобы одно из двух условий выполнялось (истинно), а другое - не выполнялось (ложно).
  • Логическая операция NOT перед логическим выражением или переменной имеет смысл "отрицание" или "инверсия" и указывает на то, что если данная переменная или выражение истинны, то их отрицание - ложь и наоборот.

Важно: Каждое из простых условий обязательно заключать в скобки.

Пример : Рассмотрим примеры логических операций в логических выражениях в Паскале

1 2 3 4 5 6 7 8 var n: integer ; begin n: = 6 ; if (n>5 ) and (n<10 ) then writeln ("истина" ) ; if (n>7 ) or (n<10 ) then writeln ("истина" ) ; if (n>7 ) xor (n<10 ) then writeln ("истина" ) ; if not (n>7 ) then writeln ("истина" ) ; end .

var n:integer; begin n:=6; if (n>5) and (n<10) then writeln("истина"); if (n>7) or (n<10) then writeln("истина"); if (n>7) xor (n<10) then writeln("истина"); if not(n>7) then writeln("истина"); end.

Пример: Компания набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и определить, подходит ли он для данной компании (вывести ответ «подходит» или «не подходит»).
Особенность: надо проверить, выполняются ли два условия одновременно.

Пример: Дано целое число A. Проверить истинность высказывания: «Число A является нечетным».