Processing:Примеры/Масштаб переменных

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску


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


Описание[1]

Переменные имеют глобальный и локальный «масштаб». К примеру, переменные, объявленные внутри блоков setup() или draw(), могут использоваться только внутри этих блоков. Глобальные переменные – это переменные, объявленные вне блоков setup() и draw() – их можно использовать в любой части программы. Если локальная переменная задана с тем же названием, что и глобальная переменная, то в текущем масштабе (в текущем блоке кода) для расчетов будет использоваться локальная переменная. Кроме того, переменные можно локализовать внутри других блоков, отделяемых символами { и }.

Пример

int a = 80;  // создаем глобальную переменную "a"

void setup() {
  size(640, 360);
  background(0);
  stroke(255);
  noLoop();
}

void draw() {
  // рисуем линию при помощи глобальной переменной "a"
  line(a, 0, a, height);
  
  // создаем новую переменную "a" – локальную для цикла for(): 
  for (int a = 120; a < 200; a += 2) {
    line(a, 0, a, height);
  }
  
  // создаем новую переменную "a" – локальную для блока draw():
  int a = 300;
  // рисуем линию при помощи новой локальной переменной "a":
  line(a, 0, a, height);  
  
  // вызываем пользовательскую функцию drawAnotherLine():
  drawAnotherLine();
  
  // вызываем пользовательскую функцию setYetAnotherLine():
  drawYetAnotherLine();
}

void drawAnotherLine() {
  // создаем новую переменную "a" – локальную для этой функции:
  int a = 320;
  // рисуем линию при помощи локальной переменной "a":
  line(a, 0, a, height);
}

void drawYetAnotherLine() {
  // поскольку в этой функции не задано локальной переменной "a",
  // линия будет нарисована при помощи глобальной переменной "a", 
  // имеющей значение «80»:
  line(a+2, 0, a+2, height);
}

{{#set: Код примера= int a = 80; // создаем глобальную переменную "a"

void setup() {

 size(640, 360);
 background(0);
 stroke(255);
 noLoop();

}

void draw() {

 // рисуем линию при помощи глобальной переменной "a"
 line(a, 0, a, height);
 
 // создаем новую переменную "a" – локальную для цикла for(): 
 for (int a = 120; a < 200; a += 2) {
   line(a, 0, a, height);
 }
 
 // создаем новую переменную "a" – локальную для блока draw():
 int a = 300;
 // рисуем линию при помощи новой локальной переменной "a":
 line(a, 0, a, height);  
 
 // вызываем пользовательскую функцию drawAnotherLine():
 drawAnotherLine();
 
 // вызываем пользовательскую функцию setYetAnotherLine():
 drawYetAnotherLine();

}

void drawAnotherLine() {

 // создаем новую переменную "a" – локальную для этой функции:
 int a = 320;
 // рисуем линию при помощи локальной переменной "a":
 line(a, 0, a, height);

}

void drawYetAnotherLine() {

 // поскольку в этой функции не задано локальной переменной "a",
 // линия будет нарисована при помощи глобальной переменной "a", 
 // имеющей значение «80»:
 line(a+2, 0, a+2, height);

} }}

См.также

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