是否可以在Java中使用三元运算符来应用增量?
例如,我想在没有"if"语句的情况下进行此操作,不是因为它更具可读性或更短,只是我想知道.
if(recordExists(recordId)){
numberofRecords++;
}
Run Code Online (Sandbox Code Playgroud)
Pet*_*rey 16
是否可以在Java中使用三元运算符来应用增量?
您可以使用添加.
numberOfRecords += recordExists(recordId) ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)
恕我直言这没有副作用.
是否可以在Java中使用三元运算符来应用增量?
那你可以写:
// Ick, ick, ick.
int ignored = recordExists() ? numberOfRecords++ : 0;
Run Code Online (Sandbox Code Playgroud)
或者进行无操作方法调用:
// Ick, ick, ick.
Math.abs(recordExists() ? numberOfRecords++ : 0);
Run Code Online (Sandbox Code Playgroud)
我强烈反对你不这样做.这是对条件运算符的滥用.只需使用一份if声明.
条件运算符的目的是创建一个表达式,其值取决于条件.
if声明的目的是根据条件执行一些声明.
表达式的目的是计算一个值,而不是引起副作用.声明的目的是产生副作用.
编辑:鉴于这个答案的有效性存在疑问:
public class Test {
public static void main(String[] args) {
boolean condition = true;
int count = 0;
int ignored = condition ? count++ : 0;
System.out.println("After first check: " + count);
Math.abs(condition ? count++ : 0);
System.out.println("After second check: " + count);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
After first check: 1
After second check: 2
Run Code Online (Sandbox Code Playgroud)