常用的运算符
命名规范
- 类名:大驼峰命名法
HelloWorld
- 变量名:小驼峰命名法
helloWorld
- 常量名:所有字母都大写,如果有多个单词。使用
_
连接 - 包名(package):全部小写
1. 类型转换
在Java存存在自动类型转换和强制类型转换,
-
自动数据类型转换:取值范围小的类型可以自动转换为取值范围大的类型
-
强制数据转换: 取值范围大的类型无法直接转换为取值范围小的类型
- 可以帮助我们实现取整的效果
int num = (int)10.5;
类型转换也不是万能的,Java前期转换的就是byte、short、int、long、float、char这些。
自动类型转换例如:
byte b = 10;
int num = b;
强制转换例如:
int num = 10;
byte b =num;
字符的秘密
// 自动类型转换 char alpha = 'a'; int num = alpha; // 97 //强制类型转换 int num1 = 99; char alpha1 = (char)num1; System.out.println("alpha1: " + alpha1); // c
char alpha1 = 'a'; alpha1 ++; // 理解为:alpha1 = alpha1 + 1 System.out.println(alpha1); // b char alpha2 = 'b'; // 在计算时,结果的类型是取值范围大的类型 System.out.println(alpha2 + 1); //99
2. 赋值运算符
=
在各种编程语言中,不再表示相等,而是表示赋值。
只有极个别的语言,=
既表示赋值,又表示相等。
// 读法:将数字10赋值给变量num
// 将等号右侧的赋值给等号左侧的
int num = 10;
// 变量和变量之间的赋值
// 将num的值赋值给变量num2
int num2 = num;
3. 算术运算符
+ 加法
- 减法
* 乘法
/ 除法
% 取余数
++ 自增
-- 自减
四则运算
int num1 = 11;
int num2 = 2;
System.out.println(num1 / num2);
在Java中进行数学计算时,有时候会出现与传统数学观念不符的情况,
例如:11 / 2
应该等于5.5,但结果为5。
是由于11 和 2 都是整数,那么在计算的时候,对于结果的类型也是采用整数。(在计算的时候,计算结果的类型是由计算的值中取值范围最大的类型)
如果真的想得到5.5,需要如下做:
int num1 = 11;
int num2 = 2;
System.out.println(num1 * 1.0 / num2);
自增自减
++ 自增1
– 自减1
int num1 = 10;
// ++ num1;
// num1 ++ 抽象理解为: num1 = num1 + 1
// num1 --
-- num1; // 抽象理解为: num1 = num1 - 1
// System.out.println(num1); // 11
System.out.println(num1); // 9
当 ++ 和 – 在单独使用时,效果上没有任何区别。
但是当 ++ 和 – 在被使用或者参与计算时,效果上有不同。
- 前 ++ :在使用时会先对变量自增1,然后再使用变量
- 后 ++ :在使用时会先使用变量,然后再对变量自增1
int num1 = 10;
// int num2 = num1 ++ - 2;
// System.out.println(num1 ++); // 10
// System.out.println(num1); // 11
System.out.println(++ num1); // 11
System.out.println(num1); // 11
4. 复合赋值运算符
-
+=
-
int num1 = 10; num1 += 2; System.out.println(num1); // 12
-
-
-=
-
int num2 = 10; num2 -= 3; System.out.println(num2); // 9
-
-
*=
-
/=
-
%=
以后可以利用+=和 -= 做累加运算
例如:求1到10的和。
int num = 1;
num += 2;
num += 3;
…
5. 关系运算符
比较运算符,可以用来做判断,比较运算符的计算结果是布尔类型的值
true(真) 和 false(假)
>
<
>=
<=
==
相等!=
不相等
=号代表赋值,==才代表相等。
6. 逻辑运算符
&&
短路与,并且||
短路或,或者!
非,取反
短路
// 将数字7赋值给num1
int num1 = 7;
// 右边进行逻辑运算
// false && true
boolean flag2 = false && (++ num1 == 8);
System.out.println(flag2); // false
System.out.println(num1); // 7
短路与和短路或,代表的是如果前面的条件能够得到最终结果,那么后面的条件就不再进行了!
false && true
只要有一个为false,结果就为falsetrue || false
只要有一个为true,结果就为true
还有一个& 和 | 也可以表示逻辑关系,但是一般不用,因为它们无论是否从前面条件得到最终结果,都要对所有条件进行计算。
所以 && 和 || 可以优化程序执行性能。
7. 三元运算符
Scanner scan = new Scanner(System.in);
System.out.print("请输入您的年龄:");
int age = scan.nextInt();
String result = (age >= 18) ? "快来玩啊!" : "小屁孩给爷爪巴!";
System.out.println(result);