Sun Java Solaris Communities My SDN Account Join SDN
 
Изучаем язык программирования JavaFX Script

Урок 6: Операторы

Documentation Distribution Policy  
« Предыдущий 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Следующий »
 

Операторы – это специальные символы, которые выполняют особые операции над одним или двумя операндами, а затем возвращают результат. Язык JavaFX Script содержит операторы присваивания, арифметические операторы, унарные операторы, операторы сравнения, логические операторы и операторы сравнения типа.

 
Содержание
 
Операторы присваивания
Арифметические операторы
Унарные операторы
Операторы сравнения
Логические операторы
Операторы сравнения типа
 
Операторы присваивания

Самым используемым оператором присваивания, который вам встретится является оператор "=". Используйте его для присваивания значения справа от оператора, операнду слева от оператора:

result = num1 + num2;
days = ["Mon","Tue","Wed","Thu","Fri"];
 

Вы уже использовали этот оператор во многих предыдущих уроках.

Арифметические операторы

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

+ (additive operator)
- (subtraction operator)
* (multiplication operator)
/ (division operator)
mod (remainder operator)
 

Следующий скрипт дает несколько примеров использования арифметических операторов:

var result = 1 + 2; // result is now 3
println(result);

result = result - 1; // result is now 2
println(result);

result = result * 2; // result is now 4
println(result);

result = result / 2; // result is now 2
println(result);

result = result + 8; // result is now 10
println(result);

result = result mod 7; // result is now 3
println(result);
 

Вы также можете комбинировать арифметические операторы с операторами присваивания для создания составных присваиваний. Например, result += 1; и result = result+1; оба выражения увеличивают result на 1.

var result = 0;
result += 1;
println(result); // result is now 1

result -= 1;
println(result); // result is now 0

result = 2;
result *= 5; // result is now 10
println(result);

result /= 2; // result is now 5
println(result);
 

Единственный арифметический оператор, который не может быть использованы таким образом, – это mod. Если, например, вы хотите разделить result на 2, а затем присвоить остаток обратно к нему, вам необходимо будет написать: result = result mod 2;

Унарные операторы

Большинство операторов требуют двух операндов; унарные операторы используют только один операнд и осуществляют такие операции, как увеличение/уменьшение значения на единицу, инвертирование числа или инвертирование значения булевой переменной.

- 	Unary minus operator; negates a number
++  	Increment operator; increments a value by 1
--    	Decrement operator; decrements a value by 1
not   	Logical complement operator; inverts the value of a boolean
 

Следующий скрипт тестирует унарные операторы:

var result = 1; // result is now 1

result--;  // result is now 0
println(result);

result++; // result is now 1
println(result);

result = -result; // result is now -1
println(result);

var success = false;
println(success); // false
println(not success); // true
 

Операторы инкремента и декремента (уменьшающие и увеличивающие значение на 1) могут применяться до (префикс) или после (постфикс) операнда. Код result++; и ++result; увеличивают result на единицу. Единственная разница заключается в том, что префиксная версия (++result) возвращает значение операнда после увеличения его на 1, а постфиксная версия (result++) возвращает значение операнда перед увеличением его на 1. (Можно запомнить какое значение возвращается по положению знаков: если знаки слева как в ++result, то сначала выполняется увеличение, а затем возвращается значение, в то время как result++ возвращает значение, а затем выполняет увеличение). Если вам нужно просто выполнить операцию инкремента или декремента, то не имеет значения, какой вариант вы выберете. Но если вы используете этот оператор в рамках другого выражения, то результат может быть разный в зависимости от выбранного варианта.

Следующий скрипт показывает различие между операторами:

var result = 3;
result++;
println(result); // result is now 4
++result;
println(result); // result is now 5
println(++result); // result is now 6
println(result++); // this still prints prints 6!
println(result); // but the result is now 7
 
Операторы сравнения

Операторы сравнения определяют, если один операнд больше, меньше, равен или не равен другому операнду.

==	equal to
!=	not equal to
>	greater than
>=	greater than or equal to
<	less than
<=	less than or equal to
 

Следующий скрипт тестирует эти операторы:

def num1 = 1;
def num2 = 2;

println(num1 == num2); // prints false
println(num1 != num2); // prints true
println(num1 > num2);  // prints false
println(num1 >= num2); // prints false
println(num1 < num2);  // prints true
println(num1 <= num2); // prints true
 
Логические Операторы

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

and
or
 

Следующий скрипт демонстрирует использование этих операторов, путем определения переменных username и password, и последующего вывода совпадения различных условий:

def username = "foo";
def password = "bar";

if ((username == "foo") and (password == "bar")) {
     println("Test 1: username AND password are correct");
}

if ((username == "") and (password == "bar")) {
     println("Test 2: username AND password is correct");
}

if ((username == "foo") or (password == "bar")) {
     println("Test 3: username OR password is correct");
}

if ((username == "") or (password == "bar")) {
     println("Test 4: username OR password is correct");
}
 

Результаты следующие:

Test 1: username AND password are correct
Test 3: username OR password is correct
Test 4: username OR password is correct
 
Операторы сравнения типа

Оператор instanceof сравнивает объект с указанным типом. Вы можете использовать его, чтобы определить является ли объект экземпляром определенного класса:

def str1="Hello";
println(str1 instanceof String);  // prints true

def num = 1031;
println(num instanceof java.lang.Integer); // prints true
 

Вы поймете как можно использовать этот оператор, когда узнаете больше о классах и наследовании в последнем уроке этого курса. 

« Предыдущий 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Следующий »
 

Оглавление