Java 算术运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。
运算符的分类:
按照功能分为:算术运算符、赋值运算符、比较(或关系)运算符、逻辑运算符、位运算符、条件运算符、Lambda运算符
分类 |
运算符 |
算术运算符(7个) |
+、-、*、/、%、++、-- |
赋值运算符(12个) |
=、+=、-=、*=、/=、%=、>>=、<<=、>>>=、&=、|=、^=等 |
比较(或关系)运算符(6个) |
>、>=、<、<=、==、!= |
逻辑运算符(6个) |
&、|、^、!、&&、|| |
位运算符(7个) |
&、|、^、~、<<、>>、>>> |
条件运算符(1个) |
(条件表达式)?结果1:结果2 |
Lambda运算符(1个) |
->(第18章时讲解) |
按照操作数个数分为:
一元运算符(单目运算符)、二元运算符(双目运算符)、三元运算符 (三目运算符)
分类 |
运算符 |
一元运算符(单目运算符) |
正号(+)、负号(-)、++、--、!、~ |
二元运算符(双目运算符) |
除了一元和三元运算符剩下的都是二元运算符 |
三元运算符 (三目运算符) |
(条件表达式)?结果1:结果2 |
算术运算符
基本语法
案例1、加减乘除模
int a = 4; int b = 5; System.out.println(a + b); // 9 System.out.println(a - b); //*1 System.out.println(a * b); // 20 System.out.println(a / b); //0 ? 为什么不是 0.8? System.out.println(a % b); //4 System.out.println(5 % 2); //1 System.out.println(5 % -2); //1 System.out.println(-5 % 2); //-1 System.out.println(-5 % -2);//-1
案例2、“+” 号的两种用法
第一种:对于+两边都是数值的话,+就是加法的意思
第二种:对于+两边至少有一边是字符串的话,+就是拼接的意思
System.out.println("\n\n"); String str = "Hello"; System.out.println(str); System.out.println("Hello " + "World");//Hello World String str1 = "任盈盈"; System.out.println(str1 + 520);// 任盈盈520 System.out.println(str1 + 5 + 20);// 任盈盈520
案例3、自加自减运算
理解:++ 运算,表示自增1。同理,-- 运算,表示自减1,用法与++ 一致。
1、单独使用
- 变量在单独运算的时候,变量前++和变量后++,是没有区别的。
- 变量前++ :例如 ++a 。
- 变量后++ :例如 a++ 。
int a1 = 2; int b1 = 2; System.out.println(a1++);//2:先输出 a1 的原始值,在进行+1 System.out.println(++b1);//3;先+1 ,在输出 System.out.println(a1);//3 System.out.println(b1);//3
练习1
随意给出一个整数,打印显示它的个位数,十位数,百位数的值。
格式如下:
数字xxx的情况如下:
个位数:
十位数:
百位数:
例如:
数字153的情况如下:
个位数:3
十位数:5
百位数:1
//输出一个舒的 个位 十位 百位 int n = 123; int bw = n / 100; int sw = n % 100 / 10; int gw = n % 100 % 10; System.out.println("百位-- " + bw); System.out.println("是位-- " + sw); System.out.println("个位-- " + gw);
练习2、为按时完成项目上线,老李连续工作47小时,编程计算共多少天零多少小时?
int hours = 47; int days = hours / 24; int hour = hours % 24; System.out.println("老李连续工作了 " + days + "天 又 " + hour + "小时,老李辛苦了!");
练习3、算术运算符:自加、自减
int l1 = 10; int l2 = 20; int l = l1++; System.out.println("l = " + l); //10 System.out.println("l1 = " + l1);//11 l = ++l1; System.out.println("l = " + l);//12 System.out.println("l1 = " + l1);//12 l = l2--; System.out.println("l = " + l);//20 System.out.println("l2 = " + l2);//19 l = --l2; System.out.println("l = " + l);//18 System.out.println("l2 = " + l2);//18
综合练习
System.out.println("5+5=" + 5 + 5);//5+5=55 byte bb1 = 127; bb1++; System.out.println("bb1 = " + bb1);//bb1 =-128 int ii = 1; int jj = ii++ + ++ii * ii++; System.out.println("jj = " + jj); //10 int q = 2; int w = q++; System.out.println(w); //2 int m = 2; m = m++; //(1)先取b的值“2”放操作数栈 (2)m再自增,m=3 (3)再把操作数栈中的"2"赋值给m,m=2 System.out.println(m);//2