Z.V*_*Z.V 49 java if-statement ternary-operator
到目前为止,我一直在搜索网络,声明总是有if和else条件如a ? b : c.我想知道是否if可以不使用三元语句else.假设我有以下代码,我希望关闭PreparedStatement它,如果它不是null
(我使用的是Java编程语言.)
PreparedStatement pstmt;
//....
(pstmt!=null) ? pstmt.close : <do nothing>;
Run Code Online (Sandbox Code Playgroud)
fra*_*zzi 48
不,你做不到. 而是试试这个:
if(bool1 && bool2) voidFunc1();
Run Code Online (Sandbox Code Playgroud)
cig*_*5.5 14
为什么只有一个选择时使用三元运算符?
if (pstmt != null) pstmt.close();
Run Code Online (Sandbox Code Playgroud)
足够!
Jer*_*vel 13
写出来吧?
if(pstmt != null) pstmt.close();
Run Code Online (Sandbox Code Playgroud)
这是完全相同的长度.
Kre*_*ase 11
如其他答案中所述,您不能使用三元运算符来执行此操作.
然而,如果需要打你,你可以使用Java 8 可选和lambda表达式把这种逻辑到单个语句:
Optional.of(pstmt).ifPresent((p) -> p.close())
Run Code Online (Sandbox Code Playgroud)
三元运算被称为三元运算,因为它需要3个参数,如果需要2,则它是二进制运算.
如上所述,它是一个返回值的表达式.
如果省略else,则会有一个未定义的情况,表达式不会返回值.
因此,在其他答案中也会提到,您应该使用if 语句.