Java语言的运算符详细解析之二
Java语言的运算符详细解析之一
运算符
算术运算符
-
+ 表示加法运算符
-
- 表示减法运算符
-
* 表示乘法运算符
-
• / 表示除法运算符
注意事项
-
当两个整数相除时结果只保留整数部分 丢弃小数部分
保留小数方式
- (不推荐)使用强制类型转换将其中一个操作数转换为double类型再运算即可
- 让其中一个操作数乘以1.0即可(推荐)
-
0不能作除数
-
-
% 表示取模/取余运算符
-
代码演示
/* 编程实现算术运算符的使用 */ public class ArithmeticTest { public static void main(String[] args) { // 1.声明两个int类型的变量并初始化 //int ia = 6, ib = 2; // 表示声明两个int类型的变量ia和ib,不推荐使用 int ia = 6; // 推荐该方式,提高了代码的可读性 int ib = 2; System.out.println("ia = " + ia); // ia = 6 System.out.println("ib = " + ib); // ib = 2 System.out.println("----------------------------------------"); // 2.使用上述变量实现算术运算符的使用 + - * / % // 表示声明变量ic来记录ia与ib的和 int ic = ia + ib; System.out.println("ic = " + ic); // ic = 8 // 其中ia+ib这个整体叫做表达式 ia、ib叫做操作数 +叫做操作符/运算符 System.out.println(ia + ib); // 8 System.out.println(ia - ib); // 4 System.out.println(ia * ib); // 12 System.out.println(ia / ib); // 3 System.out.println(ia % ib); // 0 System.out.println("----------------------------------------"); // 3.注意事项 // 3.1 当两个整数相除时结果只保留整数部分,丢弃小数部分 System.out.println(5 / 2); // 2 System.out.println("----------------------------------------"); // 3.2 若希望保留小数部分该如何处理? // 处理方式一:使用强制类型转换将其中一个操作数转换为double类型再运算即可 System.out.println((double)5 / 2); // 2.5 System.out.println(5 / (double)2); // 2.5 System.out.println((double)5 / (double)2); // 2.5 System.out.println((double)(5 / 2)); // 2.0 // 处理方式二:让其中一个操作数乘以1.0即可(推荐) System.out.println(5*1.0 / 2); // 2.5 System.out.println(5.0 / 2); // 2.5 ia.0 错误的表示 System.out.println("----------------------------------------"); // 3.3 0不能作除数 //System.out.println(5 / 0); // 编译ok,运行发生java.lang.ArithmeticException(算术异常 记住): / by zero System.out.println(5 / 0.0); // Infinity 无穷 System.out.println(0 / 0.0); // NaN Not a Number } }
字符串连接运算符
-
+ 可以实现字符串的连接。同时可以实现字符串与其他数据类型“相连” 。
-
注意事项
-
+ 既可以作为字符串连接符 又可以做加法运算符
判断依据 + 两边的操作数有一个是字符串类型,则被当做字符串连接符处理 否则当加法运算符来处理
-
-
代码演示
/* 编程使用字符串连接符 */ public class ArithmeticCharTest{ public static void main(String[] args){ int inputNumber = 3306; // 0小时55分钟55秒 // 1.将正整数拆分的秒数分为时分秒 并使用变量记录 int hour = inputNumber / 3600; // 0 int min = inputNumber % 3600 / 60; // 55 int sec = inputNumber % 3600 / 60 % 60; // 55 // 2.打印拆分结果 System.out.println(hour + "小时" + min + "分钟" + sec+ "秒"); // 3. + 既可以作为字符串连接符 又可以做加法运算符 // 判断依据 + 两边的操作数有一个是字符串类型,则被当做字符串连接符处理 否则当加法运算符来处理 System.out.println(hour + min + sec); // 0 + 55 + 55 = 110 System.out.println("" + hour + min + sec); // 05555 System.out.println(hour + "" + min + sec);// 05555 System.out.println(hour + min + "" + sec); // 5555 System.out.println(hour + min + sec + ""); // 110 + "" } }
关系/比较运算符
-
> 表示是否大于运算符
-
< 表示是否小于运算符
-
>= 表示是否大于等于运算符
-
<= 表示是否小于等于运算符
-
== 表示是否等于运算符
-
!= 表示是否不等于运算符
-
注意事项
所有以关系运算符作为最终运算的表达式结果一定是boolean类型。
-
代码演示
/* 编程使用关系运算符 */ public class RelationTest{ public static void main(String[] args){ // 1.声明2个int类型的变量并初始化 int ia = 2; int ib = 5; // 2.使用变量实现关系运算的使用 并打印结果 boolean b1 = ia > ib; System.out.println("b1 = " + b1); // false System.out.println("ia == b1 --> " + (ia == ib)); // false System.out.println("ia >= b1 --> " + (ia >= ib)); // false System.out.println("ia <= b1 --> " + (ia <= ib)); // false System.out.println("ia > b1 --> " + (ia > ib)); // false System.out.println("ia < b1 --> " + (ia < ib)); // true System.out.println("ia != b1 --> " + (ia != ib)); // true } }
自增减运算符
-
++ 表示自增运算符,用于使得当前变量自身的数值加1的效果
-
– 表示自减运算符,用于使得当前变量自身的数值减1的效果
-
注意事项
-
只能用于变量,常数不可以
-
前后位置不同时 得到的结果也可能不同
变量在前 先进行操作 后进行运算
变量灾后 先进行运算 后进行操作
-
-
代码演示
/* 编程实现自增减运算符的使用 */ public class SelfTest { public static void main(String[] args) { // 1.声明一个int类型的变量并初始化 int ia = 10; // 2.打印变量的数值 System.out.println("ia = " + ia); // ia = 10 System.out.println("---------------------------------------------"); // 3.实现自增减运算符的使用 // 表示让变量ia自身的数值加1,并覆盖该变量原来的数值 ia++; // ia = ia + 1; System.out.println("ia = " + ia); // ia = 11 // 表示让变量ia自身的数值加1,并覆盖该变量原来的数值 ++ia; System.out.println("ia = " + ia); // ia = 12 // 表示让变量ia自身的数值减1,并覆盖该变量原来的数值 --ia; System.out.println("ia = " + ia); // ia = 11 ia--; System.out.println("ia = " + ia); // ia = 10 System.out.println("---------------------------------------------"); // 4.前后位置不同时 得到的结果也可能不同 // 其中ia++这个整体叫做表达式 其中ia叫做操作数/变量 也就是ia++和ia表示不同的含义,因此所占的内存空间应该不同 // 下面的代码是在打印表达式的结果 // 后++表示先让变量ia的数值作为整个表达式的最终结果,然后再让ia变量自身的数值加1 System.out.println(ia++); // 10 System.out.println("ia = " + ia); // 11 // 前++表示先让变量自身的数值加1,然后再让变量的数值作为整个表达式的结果 System.out.println(++ia); // 12 System.out.println("ia = " + ia); // 12 System.out.println("---------------------------------------------"); // 5.笔试考点 int ib = ia++; System.out.println("ib = " + ib); // 12 System.out.println("ia = " + ia); // 13 int ic = ++ia; System.out.println("ic = " + ic); // 14 System.out.println("ia = " + ia); // 14 // 14 + 16 System.out.println(ia++ + ++ia); // 30 System.out.println("ia = " + ia); // 16 } }