赋值,算术和一元运算符
翻译自ORACLE Java Tutorials –Assignment, Arithmetic, and Unary Operators
简单分配算子
您将遇到的最常见的运算符之一是简单的赋值运算符“=”。你在自行车课上看到这个操作符它将其右侧的值分配给左侧的操作数:
int cadence = 0;
int speed = 0;
int gear = 1;
此操作符也可用于对象分配对象引用,如创建对象中所述。
算术运算符
Java编程语言提供执行加法,减法,乘法和除法的操作符。有一个很好的机会,你会认识到他们的基础数学的同行。可能看起来很新的唯一符号是“%”,它将一个操作数除以另一个,并返回剩余部分作为结果。
操作符 | 说明 |
---|---|
+ | 加法运算符(也用于字符串连接) |
- | 减法运算符 |
* | 乘法运算符 |
/ | 除操作符 |
% | 取模操作符 |
以下程序ArithmeticDemo测试算术运算符。
class ArithmeticDemo {
public static void main(String [] args){
int result = 1 + 2;
//结果现在是3
System.out.println(“1 + 2 =”+ result);
int original_result = result;
result = result - 1;
//结果现在是2
System.out.println(original_result +“ - 1 =”+ result);
original_result = result;
result = result * 2;
//结果现在是4
System.out.println(original_result +“* 2 =”+ result);
original_result = result;
result = result / 2;
//结果现在是2
System.out.println(original_result +“/ 2 =”+ result);
original_result = result;
result = result + 8;
//结果现在是10
System.out.println(original_result +“+ 8 =”+ result);
original_result = result;
result = result%7;
// 结果现在是3
System.out.println(original_result +“%7 =”+ result);
}
}
此程序打印如下:
1 + 2 = 3
3 - 1 = 2
2 * 2 = 4
4 / 2 = 2
2 + 8 = 10
10 % 7 = 3
您还可以将算术运算符与简单赋值运算符组合以创建复合分配。例如,x +=1; x = x + 1;都将x的值增加1。
+运算符也可以用于将两个字符串连接(连接)在一起,如下面的ConcatDemo程序所示:
class ConcatDemo {
public static void main(String[] args){
String firstString = "This is";
String secondString = " a concatenated string.";
String thirdString = firstString+secondString;
System.out.println(thirdString);
}
}
在该程序结束时,变量thirdString包含”This is a concatenated string.”,它被打印到标准输出。
一元运算符
一元运算符只需要一个操作数; 它们执行各种操作,例如将值递增/递减1,否定表达式或反转布尔值。
操作符 | 说明 |
---|---|
+ | 一元加运算符; 表示正值(但是,数字为正数) |
- | 一元减运算符 否定一个表达 |
++ | 增量算子 将值递增1 |
- - | 递减运算符; 将值减1 |
! | 逻辑互补算子 反转布尔值的值 |
以下程序,UnaryDemo,测试一元运算符:
class UnaryDemo {
public static void main(String[] args) {
int result = +1;
// result 现在是 1
System.out.println(result);
result--;
// result 现在是 0
System.out.println(result);
result++;
// result 现在是 1
System.out.println(result);
result = -result;
// result 减1
System.out.println(result);
boolean success = false;
// false
System.out.println(success);
// true
System.out.println(!success);
}
}
递增/递减运算符可以应用在前缀(前缀)之前或之后(后缀)操作数。 代码result++
; 和++result
; 将结果的结果增加一个。 唯一的区别是前缀版本(++ result
)评估为递增值,而postfix版本(result ++
)计算为原始值。 如果您只是执行一个简单的增量/减量,那么选择哪个版本并不重要。 但是,如果您在较大的表达式中使用此运算符,那么您选择的运算符可能会有显着差异。
以下程序PrePostDemo说明了前缀/后缀一元增量运算符:
class PrePostDemo {
public static void main(String[] args){
int i = 3;
i++;
// prints 4
System.out.println(i);
++i;
// prints 5
System.out.println(i);
// prints 6
System.out.println(++i);
// prints 6
System.out.println(i++);
// prints 7
System.out.println(i);
}
}