针对三目运算符以及if else的运行时间做了一个简单的测试,发现在多次测试结果中:
三目运算符在时间上远远大于if else(纳秒为单位)。
贴上代码:
//获取开始时间
long startTime=System.nanoTime();
//测试的代码段
StringBuilder stringBuilder = new StringBuilder("One");
//三目运算符
System.out.println(stringBuilder.equals("456")?stringBuilder.append("One"):stringBuilder.append("Two"));
//获取结束时间
long endTime=System.nanoTime();
System.out.println("三目运算符程序运行时间: "+(endTime-startTime)+"ns");
//获取开始时间
long startTimeOne = System.nanoTime();
//测试的代码段
StringBuilder stringBuilderOne = new StringBuilder("One");
if (stringBuilderOne.equals("456")){
stringBuilderOne.append("One");
}else {
stringBuilderOne.append("Two");
}
System.out.println(stringBuilderOne);
//获取结束时间
long endTimeOne = System.nanoTime();
System.out.println("if else程序运行时间: "+(endTimeOne-startTimeOne)+"ns");
运行时间对比example:
之后查阅他人资料--引用
分析:这只是简单的判断,我们发现三元运算符在对简单的逻辑判断的代码量比if判断结构少,提高了复用性,并且iif判断语句只是单纯的判断并输出结果判断后的结果,而三元运行符,发生了运算符的赋值动作,也就是运算,而if判断结构没有,简单来说就是三元运算符有运算结果,而if判断结果没有运算结果,如果是相对复杂的逻辑判断,三元运算符则不能替代if判断结果,反之如果是简单的逻辑判断三元运算符更加简洁,根据不同情况来选择。
---------------------
来源:优快云
原文:https://blog.youkuaiyun.com/qq1723205668/article/details/51661187