PS:楼主只PO出了自己学到的部分运算符
一、算术运算符 + - * / %算术表达式的最终类型由表达式中最大类型决定++ --+= -= *= /=二、关系运算符> >= < <= == !=关系表达式的最终结果为boolean逻辑运算符&& 短路:逻辑表达式左侧表达式的结果能确定 最终结果时右侧表达式不予执行||!赋值运算符=从右向左执行三元运算符xxx val = boolean ? V1 : V2;/+ - * / % 10/3 => 3 10%3 => 1
++ – a++ 先取值后+1 ++a 先+1再取值
+= -= *= /= a=a+1 <=> a++/++a <=> a+=1 a=a+N <=> a+=N
> >= < <= == !=(关系表达式的最终结果为 boolean)
20==10 => false 20>10 => true 20!=10 => true
&& 逻辑与 二元短路与 都为true为true,否则为false
|| 逻辑或 二元短路或 都为false为false,否则为true
! 逻辑非 前置一元运算符 !true=false / !false=true
★短路:逻辑表达式左侧表达式的结果能确定最终结果时,右侧表达式不予执行。
下面举例演示:
public class Practice { public static void main(String[] args){ int a = 1; System.out.println(false && a++==1); //&&之前已经为false,那么整个逻辑表达式的结果就是false,后面直接不予执行; System.out.println(a); //因为后面的表达式不予执行,所以结果还为1; System.out.println(false || a++==1); //虽然||之前为false,但是还会计算后续的表达式; System.out.println(a); //表达式执行后结果自然加1; } } //输出结果为: false 1 true 2= C = A + B将把A + B得到的值赋给C
xxx val = boolean ? V1 : V2;
条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。
下面举例演示:
public class Practice { public static void main(String[] args){ int a = 30>20 ? 30 : 20; int b = 30<20 ? 30 : 20; System.out.print(a+"\t"+b); } } //输出结果为: 30 20if(条件){代码}
public class Practice { public static void main(String[] args){ if(30>20){ System.out.println("true"); } } } //输出结果为: trueif(条件){代码1}else{代码2}
public class Practice { public static void main(String[] args){ if(20>30){ System.out.println("true"); }else{ System.out.println("false"); } } } //输出结果为: falseif(条件1){代码1}else if(条件2){代码2}…else{代码N} ★if做区间条件
import java.util.Scanner; public class Practice { public static void main(String[] args){ Scanner input = new Scanner(System.in); System.out.print("告诉我你的成绩:"); int score = input.nextInt(); if(score>=90){ System.out.println("优秀"); }else if(score>=80){ System.out.println("良好"); }else if(score>=70){ System.out.println("中等"); }else if(score>=60){ System.out.println("及格"); }else{ System.out.println("不及格"); } } } //输出结果为: 告诉我你的成绩:87 良好switch(算术表达式){case 常量1:代码1;break;…default:代码N;} ★switch做等值条件
import java.util.Scanner; import java.text.MessageFormat; public class Practice { public static void main(String[] args){ //判断某年是否为闰年和这一年某月的天数 Scanner input = new Scanner(System.in); int year,month,day=0; System.out.print("请输入年份:"); year =input.nextInt(); System.out.print("请输入月份:"); month =input.nextInt(); boolean isLeapYear = (year%4==0 && year%100!=0) || year%400==0; System.out.println(year+(isLeapYear?"是":"非")+"闰年"); switch(month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: day = 31; break; case 4: case 6: case 9: case 11: day = 30; break; case 2: day = isLeapYear ? 29 : 28; break; } } } System.out.println(MessageFormat.format("{0}年{1}月有{2}天",year,month,day)); //输出结果为: 请输入年份:2004 请输入月份:2 2004是闰年 2,004年2月有29天if(){ if(){} switch(){} }
多个变量构成复杂条件,建议用嵌套分支,一层只负责一个变量构成的条件
import java.util.Scanner; public class Practice { public static void main(String[] args){ //学校组织跑步比赛,跑进10秒进决赛,决赛根据性别进行分组 Scanner input = new Scanner(System.in); int score; char gender; System.out.println("请输入成绩:"); score = input.nextInt(); if(score<10 ){ System.out.println("请输入性别:"); gender = input.next().charAt(0); if(gender !='男' && gender !='女'){ System.out.println("性别有误"); }else{ System.out.println("恭喜你进入"+gender+"子组决赛!"); } } else{ System.out.println("成绩不达标,淘汰"); } } } //输出结果为: 请输入成绩: 8 请输入性别: 男 恭喜你进入男子组决赛!原创作者:wsjslient
作者主页:https://blog.csdn.net/wsjslient
参考文档:https://www.runoob.com/java/java-tutorial.html