Processing:Примеры/Приоритет операторов: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
Нет описания правки
 
(не показаны 2 промежуточные версии 2 участников)
Строка 1: Строка 1:
{{Processing панель перехода}}
{{Processing панель перехода}}
{{Перевод от Сubewriter}}
{{Перевод от Сubewriter}}
{{Myagkij-редактор}}
{{Myagkij-редактор}}
{{Черновик}}


=Описание<ref>[https://processing.org/examples/operatorprecedence.html processing.org - Operator Precedence ]</ref>=
=Описание<ref>[https://processing.org/examples/operatorprecedence.html processing.org - Operator Precedence ]</ref>=
Строка 81: Строка 78:
}}
}}


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
// ниже показан приоритет операторов по убыванию (сверху вниз):
// ниже показан приоритет операторов по убыванию (сверху вниз):
// Умножение, деление, деление по модулю: * / %
// Умножение, деление, деление по модулю: * / %
Строка 132: Строка 129:
<references />
<references />


{{SEO
{{Навигационная таблица/Портал/Processing}}
|Заголовок статьи=Processing: Приоритет операторов / Онлайн справочник - wikihandbk.com
|Ключевые слова=processing, Приоритет операторов,Приоритет операторов в processing, пример Приоритет операторов, пример Приоритет операторов в processing
|Описание статьи=
|Изображение статьи для Open Graph=
|Адрес страницы для schemaNewsArticle=<nowiki>http://wikihandbk.com/wiki/Processing:Примеры/Приоритет операторов</nowiki>
|Изображение статьи для schemaNewsArticle=<nowiki></nowiki>
|Высота изображения статьи для schemaNewsArticle=
|Ширина изображения статьи для schemaNewsArticle=
|Дата публикации для schemaNewsArticle=2018-07-23
|Автор=Мякишев Е.А.
|Издатель=myagkij
|Логотип издателя для schemaNewsArticle=<nowiki>http://wikihandbk.com/ruwiki/images/6/61/Tech_geek_logo_1x.jpg</nowiki>
|Ширина логотипа издателя для schemaNewsArticle=60
|Высота логотипа издателя для schemaNewsArticle=45
}}
{{Навигационная таблица/Справочник языка Processing}}
{{Навигационная таблица/Processing/Примеры}}

Текущая версия от 07:41, 27 августа 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Описание[1]

Если вы не задали явно порядок, в котором должны выполняться операторы, они будут выполнены в соответствии с приоритетом операторов, заданным по умолчанию. К примеру, в выражении «4+2*8» сначала «2» будет умножено на «8», а затем к результату этого умножения будет добавлено «4». Так будет сделано, потому что оператор «*» имеет более высокий приоритет, чем оператор «+». Чтобы программа читалась понятнее, рекомендуем записывать такие выражения примерно так: «4+(2*8)», т.е. с добавлением круглых скобок.

Кроме того, при помощи круглых скобок можно управлять порядком выполнения операторов. Другими словами, если вписать в коде «(4+2)*8», то сначала «4» будет прибавлено к «2», а потом результат будет умножен на «8».

Приоритет операторов по умолчанию показан в начале скетча-примера ниже.

Пример

// ниже показан приоритет операторов по убыванию (сверху вниз):
// Умножение, деление, деление по модулю: * / %
// Сложение и вычитание: + -
// Сравнение: < > <= >=
// Равенство: == !=
// Логическое И: &&
// Логическое ИЛИ: ||
// Присвоение: = += -= *= /= %=

size(640, 360);
background(51);
noFill();
stroke(51);

stroke(204);
for(int i=0; i< width-20; i+= 4) {
  // здесь «30» будет добавлено к «70»,
  // а затем будет выполнено сравнение с текущим значением «i»;
  // для ясности можно добавить скобочки –
  // "if (i > (30 + 70)) {"
  if (i > 30 + 70) {
    line(i, 0, i, 50);
  }
}

stroke(255);
// сначала «2» умножается на «8»
// а затем к результату будет добавлено «4»;
// для ясности можно добавить скобочки –
// "rect(5 + (2 * 8), 0, 90, 20);"
rect(4 + 2 * 8, 52, 290, 48);
rect((4 + 2) * 8, 100, 290, 49);
  
stroke(153);
for (int i = 0; i < width; i+= 2) {
  // сначала будут выполнены операторы сравнения,
  // потом логическое И, и наконец – логическое ИЛИ; 
  // чтобы код лучше читался, можно добавить скобочки:
  // "if(((i > 20) && (i < 50)) || ((i > 100) && (i < width-20))) {"
  if (i > 20 && i < 50 || i > 100 && i < width-20) {
    line(i, 151, i, height-1);
  }

См.также

Внешние ссылки