Upv*_*ote 0 java operators comparator
给出以下参数:
boolean a = true ;
boolean b = false ;
boolean c = true ;
Run Code Online (Sandbox Code Playgroud)
我想要这个版本的最小代码:
if ( ( a && ! b) || ( ! a && b) ) {
z1 += 99 ;
}
if (a ^ b) {
z1 += 19 ;
}
if ( ( a && b) || ( ! a && ! b) ) {
z1 += 118;
}
Run Code Online (Sandbox Code Playgroud)
需要修改什么?
第一个条件与第二个条件相同,第三个条件是对其他条件的否定,所以我们有
if (a ^ b) {
z1 += 99 + 19 // = 118
} else {
z1 += 118
}
Run Code Online (Sandbox Code Playgroud)
我们可以再次缩短它,无论a或b是什么,z1增加118,所以我们只有
z1 += 118
Run Code Online (Sandbox Code Playgroud)