Java运算符
1数学运算符
数学运算符: + - * / %
例子
1 public class Demo {
2 public static void main(String[] args) {
3 int x = 23;
4 int y = 12;
5 System.out.println(x+y);//35 加法
6 System.out.println(x-y);//11 减法
7 System.out.println(x*y);//276 乘法
8 System.out.println(x/y);//1 整数的除法取整,会把小数部分丢失
9 System.out.println(x%y);//11 计算除法的余数 商1余11
10 }
11 }
注意:n%3是周期函数,函数值是 0,1,2,0,1,2,0,1,2.........(常用)
2 自增(自减)运算符
自增自减运算符: ++ --
就是可以将当前变量自我增加(减少)1 的运算符
* i++,后++,先将i的值作为整个表达的值,然后将i增加1。
* ++i,先++,先将i增加1,然后将i的值作为整个表达的值。
例1
1 public class Demo {
2 public static void main(String[] args) {
3 int a = 1;
4 int b = 1;
5 b = a++ ;
6 System.out.println("a:"+a+",b:"+b);
7 //1 取出a的值 1 作为a++表达式的值
8 //2 a增加1 ,变为2
9 //3 执行赋值运算,b被赋值"a++表达式(即1)"的值
10 }
11 }
12 输出结果:
13 a:2,b:1
例2
1 import java.util.Scanner;
2
3 public class Demo {
4 public static void main(String[] args) {
5 int a = 1;
6 a = a++;
7 System.out.println("a:"+a);
8 //1 "a++表达式"的值为1
9 //2 等号右边的a+1变为2
10 //3 执行赋值运算,左边的a被赋值"a++表达式(即1)"的值
11 }
12 }
13 输出结果:
14 a:1
3 逻辑与比较运算
逻辑运算:与(并且)&& 或(或者)|| 非(否则)!
&&和||被称作短路运算符,还有“&”和"|"称作非短路运算符(使用的很少,逻辑不合理)
短路运算符和非短路运算符的区别
* 短路运算符[条件1&&条件2],如果条件1成立,则条件2不执行
* 非短路运算符[条件1 & 条件2]2个条件都执行
例子1
1 public class Demo {
2 public static void main(String[] args) {
3 int age = 68;
4 char sex = '男' ;
5 if(sex=='女'&& age++>60){ //判断sex =='女'为false,age++>60不执行
6 System.out.println("请进");//如果性别为女,年龄大于60,输出“请进“
7 }
8 System.out.println(age);//68
9 }
10 }
11 输出结果:
12 68
例子2
1 public class Demo {
2 public static void main(String[] args) {
3 int age = 68;
4 char sex = '男' ;
5 if(sex=='女'& age++>60){ //两句都执行,非短路运算符
6 System.out.println("请进");//如果性别为女,年龄大于60,输出“请进“
7 }
8 System.out.println(age);//68
9 }
10 }
11 输出结果:
12 69
注:“|“和"||"也一样
比较运算符,比较变量的值:>(大于) >=(大于等于) <( 小于)
<=(小于等于) ==(等于) !=(不等于)
例子
1 public class Demo {
2 public static void main(String[] args) {
3 int a = 2;
4 int b = 3;
5 boolean c = a==b; //这里的==可以换成> ,>=
6 System.out.println(c);//false
7 boolean d = a!=b; //这里的!=可以换成<,<=
8 System.out.println(d);//true
9 }
10 }
4 条件运算符(3元运算符,三目运算符)
条件表达式的语法:[条件表达式? 表达式1:表达式2]
当条件表达式为true的时候,表达式1作为整个表达式的值,否则表达式2作为整个条件表达式的值
例子
1 public class Demo {
2 public static void main(String[] args) {
3 int age = 68;
4 char sex = '男';
5 //年龄<25或者性别=女的人记100
6 //年龄>=25或者性别=n男的记90
7 int a = age <25||sex =='女'?100:90;
8 System.out.println(a);//90
9 }
10 }
11 输出结果为90
例:分页业务逻辑
1 public class Demo {
2 public static void main(String[] args) {
3 Scanner sca = new Scanner(System.in);
4 int total = sca.nextInt();//假设用户输入了total条数据
5 int size = 10;//规定每页显示10条
6 /*如果是int page = total/size
7 * 假设total = 23,那int page =total/size=2
8 * 最后一页被截取
9 */
10 //此时需要用三目运算符来表示
11 int page = total%size==0 ? total/size : total/size+1;
12 //如上表示如能除尽,则刚好,否则加一页
13 System.out.println(total + "条数据需要"+page+"页");
14 }
15 }