一、运算符介绍
- 1、 介绍:运算符是一种特殊的符号,用于表示数据的运算、赋值和比较等
- 2 、作用:主要是对数值类型的变量进行运算的
- 3 、种类:+ | - | * | / | % | ++ |- -
二、算数运算符
- 1、 除法的使用
System.out.println(10 / 4);//输出2,两边都是整数 int,最后结果也是整数 int ,是数学上的结果对下取整
System.out.println(10.0 / 4);//输出2.5,前面是double,后面 int ,运算时,自动把 int 转成 double 进行运算,这样,小数就可以保留下来了
double d = 10 / 4;
System.out.println( d );//输出2.0,运算的两个结果是 int 型数据 2,再把这个 2 赋值给 double 类型的数据 d ,就变成了 2.0
- 2、 % 的使用,% 的本质是 a % b = a- [a / b * b]
(a / b) 为 int 型
System.out.println(10 % 3); //输出 1 ; 10 除以 3 商为 3,余数为 1
System.out.println(-10 % 3); //输出 -1;-10 除以 3 商为 -3,余数为 -1
System.out.println(10 % -3); //输出 1 ; 10 除以 -3 商为 -3,余数为 1
System.out.println(-10 % -3); //输出 -1;-10 除以 3 商为 -3,余数为 -1
- 3、 ++ /-- 的使用
++ 自增加法(加 1 ), – 自减减法(减一),这里只讲述 ++ ,但是 – 的使用方法都是一致的;
(1)独立使用时,放在前面和后面都一样
int a = 1;
int b = 1;
a++;
++b;
System.out.println(a);//输出2
System.out.println(b);//输出2
(2)在前时,先加 1 ,在运算;在后时,先以原来的数值进行运算,运算完成后,再次加一
int a = 1;
int b = a++;
int c = ++a;
System.out.println(a);//输出3,a 自增两次 a + 1 + 1 = 3
System.out.println(b);//输出1,因为 b = 原始 a(为1),复制完成之后,a = a + 1 = 2;
System.out.println(c);//输出3,因为 c = a + 1 + 1,在前方,先完成自增, a = a + 1 = 3,再进行赋值
- 4、 面试题 ①
int i = 1;//1 --> i
i = i++; //(1)temp = i; (2)i = i + 1; (3) i = temp;也就是说,在完成这个语句操作时,用到了一个临时变量 temp ,这个 ++ 在后面,
//所以就是先赋值,再 +1,所以有了第一步,temp 的值为 1,执行(2),i 自增,执行(3),最后把 temp 赋值给 i ,所以最终结果为1
System.out.println(i);//输出 1
- 5、 面试题 ②
int i = 1;//1 --> i
i = ++i;//(1)i = i + 1; (2)temp = i; (3) i = temp;也就是说,在完成这个语句操作时,用到了一个临时变量 temp ,这个 ++ 在前面,
//底层执行时,是先 +1,再 赋值,所以有了第一步,i 自增,i 为 2,执行(2) temp 的值为 2,执行(3),最后把 temp 赋值给 i ,所以最终结果为2
System.out.println(i);//输出2
- 6 、课堂练习题 ① :写出输出结果
int n1 = 10;
int n2 = 20;
int i = n1++;
System.out.println(i); //输出10
System.out.println(n2);//输出20
i = --n2;
System.out.println(i); //输出19
System.out.println(n2);//输出19
- 7 、课堂练习题 ② :假如还有 59 天放寒假,问:还有 ?个星期零 ?天
//思路分析:定义一个 int型 变量保存总天数 59;然后星期就是总天数 / 7,零头天数就是 59 % 7;
int day_sum = 59;
int week_num = 59 / 7;
int day_num = 59 % 7;
System.out.println("还有" + week_num + "个星期"); //输出 还有8个星期
System.out.println("还有零" + day_num + "天"); //输出 还有零3天
- 8、 课堂练习题 ③:已知公式:摄氏温度 = (5/9) * (华氏温度- 100);定义一个变量保存华氏温度,求出对应的摄氏温度
(扩展:写出一个程序能完成输入 摄氏温度,输出 华氏温度)
//思路分析:因为涉及到了分数运算,所以应该用 double 类型的变量来存储数据,然后根据公式求出结果
double fahrenheit = 234.6;
//double celsius = (5 / 9) * fahrenheit - 100;//这个地方 5 / 9 一定要转换成 double型
double celsius = (5 / 9.0) * fahrenheit - 100;
System.out.println("华氏温度" + fahrenheit + " 对应的摄氏温度为 " + celsius );
//输出 华氏温度234.6 对应的摄氏温度为 74.77777777777777
三、关系运算符(比较运算符)
- 1、介绍
关系运算符的结果都是 boolean型,也就是说,结果要么是 true ,要么就是 false,关系表达式一般用于判断语句中 - 2、种类
==(等于) !=(不等于) < > <= >= instanceof(检查是否为类的对象 例如 “陈鑫” instanceof String ;//结果是 true )
int a = 9;
int b = 8;
System.out.println(a > b); //输出 true
System.out.println(a >= b); //输出 true
System.out.println(a < b); //输出 false
System.out.println(a <= b); //输出 false
System.out.println(a == b); //输出 false
System.out.println(a != b); //输出 true
boolean flag = a >b; //flag 的值为 true
-
3、细节和使用注意
相等 == 不能写成 =;关系运算符组成的表达式,称之为关系表达式
四、逻辑运算符
-
1、 介绍:用于连接多个条件(多个关系表达式),最终结果也是一个 boolean型 的值
-
2、种类:
&a