用來完成簡單的選擇邏輯,即根據條件判斷,從兩個選擇中選擇一種執行。
使用格式:
(條件表達式)?表達式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))
大多數情況中這種的使用是非常的方便的。