三元运算符详解

平时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,但是反过来不一定可以。

java中什么方法能替代三元运算法则_变量名

二、示例:生成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;
    }
}

总结

我亦无他,唯手熟尔。