Операции сравнения

Интернет-магазин

Новости Arduino

16 декабря 2013г.
Flutter - платформа разработки, основанная на Arduino
01 марта 2013г.
TV-выход на Arduino
08 февраля 2013г.
Raspberry Pi медиацентр своими руками
08 ноября 2012г.
Пополнение в библиотеке - Bionic Arduino на русском языке
04 июля 2012г.
Сонар для слепых на базе Arduino Mini Pro
30 мая 2012г.
Новости Raspberry Pi или шесть мучительных недель
16 мая 2012г.
Подключение датчика движения к Ардуино
14 февраля 2012г.
Arduino Pong - игровая платформа

Контактные данные

Телефон:
(093) 503-26-13
Электронная почта:

 

Главная Библиотека Arduino Описание языка Arduino на русском языке Операции сравнения

Операции сравнения

Библиотека Arduino Описание языка Arduino на русском языке if (условие) и ==,! =, <, > (сравнение)
if, В сочетании с операторами сравнения проверяет, выпролняется ли условие, и выбирает алгоритм для того или иного случая. 
if (someVariable > 50)
{
// тело условия
}

В случае, если someVariable будет меньше 50 программа пропустит список операторов, заключенный в фигурные скобки. Если же условие верно, то сначала выполнятс команды в фигурных скобках а затем уже пойдет выполнение основного цикла программы.
Фигурные скобки могут закрываться в той же строке, что и опрераторы. Если оператор всего один, то скобки опускаются.
if (x > 120) digitalWrite (LEDpin, HIGH);
if (x > 120)
digitalWrite (LEDpin, HIGH);
if (x > 120){ digitalWrite (LEDpin, HIGH); }
if (x > 120){
digitalWrite (LEDpin1, HIGH);
digitalWrite (LEDpin2, HIGH);
}//Все варианты верны

Операторы сравнения:
x == y (x равен y)
x! = y (x неравен y)
x < y (x меньше y)
x > y (x больше y)
x ≤ y (x меньше или равно y)
x >= y (x больше или равно y)
Внимание:
Остерегайтесь использования символа одиночного равенства (if (x=10)). В этом случае выполниться присваивание переменной x значения, равного 10. Вместо этого необходимо использовать символ двойного равенства (if x==10), который как раз и сравнивает, равно значение переменной 10 или нет. Предыдущая запись будет всегда верной.
Учтите, что if возвращает TRUE при любом ненулевом значении.
if может использоваться в виде полной структуры if…else

if / else
if/else дает больший контроль над выполнением кода, поскльку в случае верного условия выполняется только один блок операторов и в другом случае — только другой блок операторов.
if (pinFiveInput < 500)
{
// Действие А
}
else
{
// действие B
}


Также, возможно расширение количества вариантов за счет использования else if помимо блока else.
if (pinFiveInput < 500)
{
// Действие A
}
else if (pinFiveInput >= 1000)
{
// Действие B
}
else
{
// Действие C
}


конструкция for
Описание:

Конструкция for позволяет повторять выполнение определенного участка кода — тело цикла. Счетчик обычно икрементируется при каждом повторе и служит для выхода из цикла. Данная конструкция позволяет более просто выполнять какие-либо повторяющиеся действия, и часто используется, например, с массивами, или выводами МК.
Имеется три управляющих значения для данной конструкции: 
for (initialization; condition; increment) {
//statement (s);
}

initialization случается первой и всего один раз. Каждый раз проверяется условие condition; Если оно верно, цикл продолжает работу, после чего выполняется increment, и снова проверяется condition. Когда условие condition слоновится ложным происходит выход из цикла.
Пример:
// Dim an LED using a PWM pin
int PWMpin = 10; // LED in series with 1k resistor on pin 10
void setup ()
{
// no setup needed
}
void loop ()
{
for (int i=0; i ≤ 255; i++){
analogWrite (PWMpin, i);
delay (10);
}
}


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

switch / case
Также как и оператор if, switch…case позволяют направлять программу по различным участкам кода.На практике switch сравнивает значение переменной с тестовым и если они равны, то запускает опеределенный участок кода на выполнение.
Оператор break позволяет выходить из условия switch, и используется в конце каждого из вариантов. Без break,switch будет выполнять все варианты подряд, вызывая ошибку.
Пример
switch (var) {
case 1:
//do something when var equals 1
break;
case 2:
//do something when var equals 2
break;
default:
// if nothing else matches, do the default
// default is optional
}

Синтаксис:
switch (var) {
case label:
// statements
break;
case label:
// statements
break;
default:
// statements
}

Параметры:
var: переменная, которую собираемся сравнивать
label: значение, с которым сравниваем переменную

цикл while
Описание:

Цикл while позволяет выполняться сколь угодно долго время вплоть до бесконечности, пока условие внутри () не станет ложным. Что- В теле цикла что-то должно менять значение, иначе из кцикла мы никогда не выйдем.
Синтаксис:
while (expression){
// statement (s)
}

Параметры:
expression — Выражение, возвращающее true или false
Пример:
var = 0;
while (var < 200){
// Делаем что-то повторяющееся 200 раз
var++;
}

do — while
Цикл do работает по тому же принципу чтои while, однако сначала выполняется тело цикла, а уже потом проверяется условие. Таким образом, цикл выполнится у нас хотя бы один раз.
do
{
// statement block
} while (test condition);

Пример:
do
{
delay (50); // wait for sensors to stabilize
x = readSensors (); // check the sensors
} while (x < 100);


break
break используется для выхода из циклов do, for, или while. Он также используется для выхода из switch.
Пример:
for (x = 0; x < 255; x ++)
{
digitalWrite (PWMpin, x);
sens = analogRead (sensorPin);
if (sens > threshold){ // bail out on sensor detect
x = 0;
break;
}
delay (50);
}


continue
continue пропускает текущую итерацию циклов (do, for, or while).
Пример:
for (x = 0; x < 255; x ++)
{
if (x > 40 && x < 120){ // create jump in values
continue;
}

digitalWrite (PWMpin, x);
delay (50);
}


return
Прекращает выполнение функции и возвращает значение в родительскую функцию, если таковое имеется.
Синтаксис:
return;
return value; // both forms are valid

Параметры:
value: переменная любого типа или константа
Пример:
Фукнция сравнивающая входное напряжение с определенным значением.
int checkSensor (){
if (analogRead (0) > 400) {
return 1;
else{
return 0;
}
}

Весь программный код, написанный после оператора return; будет висеть мертвым грузом в памяти программ, поскольку никогда не будет выполнен.
void loop (){
// гениальный код
return;
// бесполезный код
//он никогда не познает, что такое жизнь…
}


goto
Переносит точку выполнения программы к определенной метке
Ситаксис:
label:
goto label; // посылает программу к нашей метке

Совет:
Использование этого оператора в настоящее время является дурным тоном программирования, хотя и делает некоторые программы более легкими. Однако, легкость алгоритма предоставляет возможную невозможность (:)) последующего дебаггинга такой программы.
Одним из вариантов использование оператора goto является выход из вложенных циклов, к примеру:
for (byte r = 0; r < 255; r++){
for (byte g = 255; g > -1; g--){
for (byte b = 0; b < 255; b++){
if (analogRead (0) > 250){ goto bailout;}//как только выполняется условие бежим из этой тьма-тараканьи…
// больше параметров … 
}
}
}
bailout;

Описание языка Arduino, Операции сравнения

06.04.2011, 4965 просмотров.

Корзина пуста

Перейдите в каталог, выберите требуемый товар и добавьте его в корзину.

Метки