三元运算符的嵌套详解:分别在JSTLJavaScript和Java中

Posted isme-zjh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三元运算符的嵌套详解:分别在JSTLJavaScript和Java中相关的知识,希望对你有一定的参考价值。

用来完成简单的选择逻辑,即根据条件判断,从两个选择中选择一种执行。

使用格式:
(条件表达式)?表达式1:表达式2;

运算规则:条件表达式  值为一个布尔值,当值为true的时候 执行表达式1   否则的话执行表达式2

这种写法可以代替我们一般的if-else-if语句

常见的可以用于下面的几种情况中:

JSTL中

        <c:forEach items="${page.list}" var="order">
                    <tr>
                    
                <td>${order.orderId}</td>
                <td>${order.goodId}</td>
                <td>${order.shopperName}</td>
                <td>${order.goodNumber}</td>
                <td>${order.goodPrice}</td>
                <td>${order.sumPrice}</td>
                <td>${order.saleTime}</td>
                <td>${order.orderStatus=="1"?"待审核":(order.orderStatus=="0"?"未通过":"已通过")}</td>      <!-- 1 代表待审核   0代表未通过  2 代表已通过 -->
            
            <shiro:hasAnyPermissions name="sys:order:edit">
                <td>
                    <a href="${ctx}/sys/order/form?orderId=${order.orderId}">修改</a>
                    <a href="${ctx}/sys/order/delete?orderId=${order.orderId}">删除</a>
                
                </td>
            </shiro:hasAnyPermissions>
            </tr>
            </c:forEach>

javascript

var state = null;

var display_state = (state == null ? "未用" : (state == true ? "在用" : "停用"))

//display_state
//"未用"

一般的三元运算符就够用了,

但是此时有个需求:比如state有3个状态,{null,true,false}

代表的意思如下:

null→未用

true→在用

false→停用

其实只有三元运算符,但这种嵌套的可以理解为"四元运算符"

 

Java中

String  str = (status = = CurStatus1 ? A :(status == CurStatus2 ?B : C))

大多数情况中这种的使用是非常的方便的。

以上是关于三元运算符的嵌套详解:分别在JSTLJavaScript和Java中的主要内容,如果未能解决你的问题,请参考以下文章

如何避免嵌套三元运算符

Sonarqube - 扩展嵌套的三元运算符

以函数方式重写嵌套的三元运算符

javascript 嵌套的三元运算符

了解嵌套的 PHP 三元运算符 [重复]

javascript中的嵌套条件三元运算符[关闭]