如果条件,我想编写等价于以下的三元运算符

时间:2013-05-16 09:38:25

标签: if-statement

String destinationFile = request.getParameter("destinationFile ");
if (destinationFile == null || "".equals(destinationFile))
 response.sendRedirect("/astro/login/index.jsp?destinationFile =customerLogin.jsp");

我把它写成

String destinationFile = request.getParameter("destinationFile ");
response.sendRedirect((destinationFile==null || "".equals(destinationFile)) ? "/astro/login/index.jsp?destinationFile =customerLogin.jsp" : destinationFile);

terinary运算符的问题在于:

之后应该放置什么

如果条件我还没有提到任何其他内容。我必须验证目录结构应该预先设置为destinatedFile。

3 个答案:

答案 0 :(得分:1)

你根本做不到。

三元运算符生成一个可以使用的表达式e。 G。作为函数参数。

那就是说,如果你有一个else分支也可以使用terary运算符。

所以

if (a) {
    response.sendRedirect(b);
} else {
    response.sendRedirect(c);
}

可以改写为

response.sendRedirect(a ? b : c);

但是如果你的else分支完全做了其他事情(或根本不做任何事情),你就会遇到正常的if条款。

答案 1 :(得分:0)

使用三元运算符--->

var reult =
    (request.getParameter("destinationFile").ToString() != String.Empty || request.getParameter("destinationFile") != null) ? response.sendRedirect("/astro/login/index.jsp?destinationFile =customerLogin.jsp") :
    null;

答案 2 :(得分:0)

你做不到...... 三元运算符暗示IF-ELSE条件,而您只有IF部分。

例如,假设您有以下代码:

String destinationFile = request.getParameter("destinationFile ");
if (!String.IsNullOrEmpty(destinationFile))
    response.sendRedirect(destinationFile);
else
    response.sendRedirect("/astro/login/index.jsp?destinationFile=customerLogin.jsp");

然后您可以将其更改为:

String destinationFile = request.getParameter("destinationFile ");
response.sendRedirect(!String.IsNullOrEmpty(destinationFile) ? destinationFile : "/astro/login/index.jsp?destinationFile=customerLogin.jsp"));