一、运算符
1.算数运算符:+,-,*,/,%,++,--
取余:%
System.out.println(5%2);//1,商2余1
System.out.println(8%2);//0,商4余0
System.out.println(2%8);//2,商0余2
自增自减:++/--
//2.1单独使用时,在前在后都一样
int a = 5,b = 5;
a++;//相当于a=a+1
++b;//相当于a=a+1
System.out.println(a);
System.out.println(b);
int c = 5,d = 5;
c--;
--d;
System.out.println(c);
System.out.println(d);
//2.2被使用时
//a++的值为a---------(a--的值为a)
//++a的值为a+1--------(--a的值为a-1)
int a=5,b=5;
int c = a++;//将a的值5赋值给c,同时a自增1变为6
int d = ++a;//将b的值6赋值给d,同时b自增1变为6
System.out.println(a);//6
System.out.println(b);//6
System.out.println(c);//5
System.out.println(d);//6
int a=5;b=5;
int c = a--;//将a的值5赋值给c,同时a自减1变为4
int d = --a;//将b的值4赋值给d,同时b自减1变为4
System.out.println(a);//4
System.out.println(b);//4
System.out.println(c);//5
System.out.println(d);//4
2.关系运算符:>,<,>=,<=,==,!=(运算结果是boolean)
int a=5,b=10,c=5;
boolean b1 = a>b;
System.out.println(b1);//false
//也可以直接输出
System.out.println(c<b);//true
System.out.println(a>=c);//true
System.out.println(a<=b);//true
System.out.println(a==c);//true
System.out.println(a!=c);//false
//与其他运算法搭配使用
System.out.println(a%2==0);//1==0 false
System.out.println(a+c>b);//false
System.out.println(a++>5);//false-----a++值为a,5>5为false,同时a自增1变为6
System.out.println(a++>5);//true------a++ 6>5为true,a自增1变为7
3.逻辑运算符:(运算结果是boolean型)
逻辑与(并且):&& 两边都为真则真,有false即为false
当第1个条件为false时,则发生短路(后面的不执行了)
//逻辑与 &&
int a=5,b=10,c=5;
boolean b1 = b>a && b<c;
System.out.println(b1);//true&&false=false
System.out.println(b<=c && b>a);//false&&true=false
System.out.println(a==b && b<a);//false&&false=false
System.out.println(b!=c && b>a);//true&&true=true
int age = 99;
System.out.println(age>=18 && age<=50);//判断年龄在18到50之间 true&&false=false
int score = 88;
System.out.println(score>=0 && score<=100);//判断成绩在0到100之间 true&&true=true
逻辑或(或者):|| 有真则为真,有true即为true
第1个条件为true时,则发生短路(后面的不执行了)
int a=5,b=10,c=5;
System.out.println(b>=a || b<c);//true||false=true
System.out.println(b<=c || b>a);//false||true=true
System.out.println(b!=c || b>a);//true||true=true
System.out.println(a==b || b<a);//false||false=false
逻辑非(取反):! 非真即假,非假即真
boolean b2 = !(a<b);//!的优先级最高
System.out.println(b2);//!true=false
System.out.println(!(a>b));//!false=true
4.赋值运算符
简单赋值运算符:=
扩展运算符(自带强转功能):+=,-=,*=,/=,%=
5.字符串连接运算符:+
1)若+两边为数字,则做加法运算
2)若+两边出现了字符串,则做字符串拼接
3)任何类型的数据与字符串连接,结果都会变为字符串型
6.条件运算符 boolean?数1:数2;
说明:整个表达式是有值的,它的值要么是?后的数1,要么是:后的数2
执行过程:
计算boolean的值:
若为true,则整个表达式的值为?号后的数1
若为false,则整个表达式的值为:号后的数2
int num = 5;
int flag = num>6?1:-1;
System.out.println(flag);
int a=8,b=9;
int max = a>b?a:b;
System.out.println("最大值是"+max);
二、分支结构(上):解决
1.if结构
if(boolean){
语句块
}
执行过程:判断boolean的值: 若为true,则执行语句块(结束)
若为false,则直接结束
2.if...else结构 二选一
if(boolean){
语句块1
}else{
语句块2
}
执行过程:若为true,则执行语句1
若为false,则执行语句2
3.if...else if结构 1.2.3.4.必走其一 但是也不能同时不走
if(boolean-1){
语句块1
}else if(boolean-2){
语句块2
}else if(boolean-3){
语句块3
}else{
语句块4
}
执行过程:boolean-1若为true,则执行语句块1(结束)
若为false,则执行boolean-2
boolean-2若为true,则执行语句块2(结束)
若为false,则执行boolean-3
boolean-3若为true,则执行语句块3(结束)
若为false,则执行语句块4