三元运算符详解
平时if-else使用比较多,看到别人使用了三元运算,感觉确实比if-else方便很多。
文章目录
- 三元运算符详解
- 前言
- 一、三元运算符定义
- 二、示例:生成2023年上班日志文件夹(单双周)
- 总结
前言
三元运算符是一种由三个操作数组成的运算符,通常用于在条件为真和为假之间进行选择。
简洁性:使用三元运算符可以在一个语句中完成相同的操作,而不需要编写额外的if-else代码块或switch-case语句。这使得代码更加简洁易读。
方便性:通过使用三元运算符,可以更方便地处理只有两种可能结果的操作,比如在赋值操作中使用。
速度:相对于if-else语句,三元运算符可以提高代码执行的速度,因为在if-else语句中可能存在多次判断。而由于三元运算符只会执行一次条件判断,所以它可以带来更快的代码执行速度。
一、三元运算符定义
三元运算符是软件编程中的一个固定格式,语法是“条件表达式?表达式1:表达式2”。使用这个算法可以使调用数据时逐级筛选。
结构:类型 变量名 = (条件表达式)? 表达式1:表达式2;()括号内进行逻辑运算,结果为boolean值,当值为true时返回表达式1的值给左边的变量,当括号内值为false时则返回表达式2的值给左边的变量。注意:1、表达式1与表达式2的类型要求是一致的,左边的变量名不要求一致,可以通过强制转换达到变换类型的目的。2、三元运算可以嵌套使用,表达式1可以是一个新的三元运算,只要其返回值类型与表达式2一致即可。3、凡是三元运算均可以转换为if-else,但是反过来不一定可以。
二、示例:生成2023年上班日志文件夹(单双周)
代码如下(示例):
import java.io.File;
public class CommonUtils1 {
public static void main(String[] args) {
int h = 4;//输入今年第一天是周几
for(int j = 1; j<=12 ;j++) {
String mouth = "\\2023-" + j;
if(mouth.length()!=8) {
mouth = "\\2023-0" + j;
}
for(int i = 1 ; i <= ggg(j) ; i++,h++) {
if(h%7==0||(h%7==6 && (h/7)%2==0) ) {
}else {
String path = "E:\\test";
String s = "" + i;
if(s.length()!=2) {
path += mouth + mouth + "-" + "0" + i;
}else {
path += mouth + mouth + "-" + i;
}
path += s.length()!=2?mouth + mouth + "-" + "0" + i
:mouth + mouth + "-" + i;//使用三元运算时
createDir(path);
}
}
}
}
// 生成文件夹
public static void createDir(String path) {
File folder = new File(path);
if (!folder.exists() && !folder.isDirectory()) {
folder.setWritable(true, false);
folder.mkdirs();
System.out.println("创建文件夹" + path);
} else {
System.out.println("文件夹已存在");
}
}
public static int ggg(int a) {
int j = a;
// 使用if-else的效果
// int num = 0;
// if(j ==1 ||j==3||j==5||j==7||j==8||j==10||j==12) {
// num = 31;
// }else if(j ==2){
// num = 28;
// }else {
// num = 30;
// }
// 使用三元运算
return j==4||j==6||j==9||j==11?j==2?28:30:31;
}
}
总结
我亦无他,唯手熟尔。