标题:令人头疼的Java小问题来了!
1.运算符
(1)二目运算符的短路操作
例如:&&和||
int a = 3; int b = 5;
if(a>1 || b<4)(
System.out.print("你好!");
)
//**此处只需要判定到a > 1 成立即可,至于b是否成立则不需再看,即b被短路,语句顺利输出;**
有如:
int a = 3; int b = 5;
if(a>5 && b<4)(
System.out.print("你好!");
)
//**此处只需要判定到a > 5 不成立即可,至于b是否成立则不需再看,即b被短路,语句无法输出;**
(2)三目运算符的使用
形如:a ? 'b' : 'c';
例如:
byte bgender = 1;//1表示男
String gender = bgender==1 ? "男" : "女";
System.out.println(“性别:”+gender);
//最终输出为性别男,此处**bgender==1 成立**,而判定条件成立时则输出冒号之**前**的字符串,
**否则**输出冒号之**后**的字符串
(3)日期的格式化操作及系统时间的获取
1)导包
import java.text.SimpleDateFormat;//日期格式化工具包
import java.util.Date;//日期获取工具包
2)方法调用
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss:SSS");
格式含义:
/**
* yyyy:表示年份 2020
* MM:表示两位的月份 05
* dd:表示两位的日 13
* hh:表示两位小时 08 12小时制
* HH:表示两位小时 08 24小时制
* mm:表示两位的分钟 52
* ss:表示两位的秒 32
* SSS:表示三位的毫秒数 188
*
* yyyy-MM-dd 表示日期
* yyyy-MM-dd HH:mm:ss 日期时间
* yyyy-MM-dd HH:mm:ss:SSS 日期时间精确到毫秒
*/
3)获取时间
Date now = new Date(1344364246986L);//输入时间可以显示特定时间,若不输入则显示当前系统时间
System.out.println(now);
4)按格式输出
String date = sdf.format(now);
System.out.println(date);
5)结果如图
![在这里插入图片描述]()
(4)分支结构
1)单分支
If(条件){
语句块;
}
2)双分支
If(条件){
语句块1;
}else{
语句块2;
}
3)多分支
1) if…else if…else//**区间比较** 针对连续的区间判断
注意:一般情况下if多重分支必须加else
if(条件1){
语句块1;
} else if(条件2){
语句块2;
} else if(条件3){
语句块3;
}else{
语句块4;
}
4)switch…case… //**等值比较**
注意:
1.表达式的类型:从JDK1.8开始支持字符串的等值比较,字符、枚举本质也是数值类型。//常量如:1 ‘a’ “abc”
2.break作用:结束分支。 Switch接口会从第一个匹配项开始执行,到第一个break结束。称之为贯穿现象。
Switch(表达式){
case 常量1:
语句块1;//表达式==常量1如果不成立则依次往下比较
break;
case 常量2:
语句块2;//表达式==常量2
break;
case 常量3:
语句块3;//表达式==常量3
break;
default:
语句块5;
}
5)嵌套分支
If(条件1){
If(条件2){
语句块1;
}else if(条件3){
语句块2;
}else{
Switch(表达式){
case…
}
}