Java 最小代码,缩短表达式
给出了以下参数:Java 最小代码,缩短表达式,java,operators,comparator,Java,Operators,Comparator,给出了以下参数: boolean a = true ; boolean b = false ; boolean c = true ; 我想要此版本的最低代码: if ( ( a && ! b) || ( ! a && b) ) { z1 += 99 ; } if (a ^ b) { z1 += 19 ; } if ( ( a && b) || ( ! a && ! b) ) { z1 += 118; }
boolean a = true ;
boolean b = false ;
boolean c = true ;
我想要此版本的最低代码:
if ( ( a && ! b) || ( ! a && b) ) {
z1 += 99 ;
}
if (a ^ b) {
z1 += 19 ;
}
if ( ( a && b) || ( ! a && ! b) ) {
z1 += 118;
}
需要修改什么
if ( ( a && ! b) || ( ! a && b) ) {
}
你可以用
if ( a!=b) {
}
你可以用
if(a==b){}
第一个条件与第二个条件相同,第三个条件是其他条件的否定,所以我们有
if (a ^ b) {
z1 += 99 + 19 // = 118
} else {
z1 += 118
}
我们可以再次缩短它,无论a或b是什么,z1增加了118,所以我们只有
z1 += 118
如果你将来需要弄清楚这类事情,那么你可能想尝试写一个表格(我认为它被称为真值表,但这里一些更具数学头脑的人可能会纠正我),显示所有可能的输入及其各自的结果。编写完表后,您应该能够快速确定总体逻辑,并尽可能简化它 对于上面的表格可能是这样的
a | b | z1
------------------
t | t |
t | f |
f | t |
f | f |
浏览每一行,并在列中写出z1的效果。如果可能的话,这将使您能够轻松确定发生了什么以及如何缩短时间。作业?你有a和b的值,所以你可以计算出哪个if子句是真的,因此z1会发生什么。如果你想要所有a/b的简化版本,那么我不知道你为什么给出值…天哪!我没看见那个人来了!代码应该对给定的a,b,c做同样的处理,所以第一个和第二个条件不一样?做一个真值表如果你不相信我,这两个条件都是一样的,无论a或b是什么。。。
z1 += 118
a | b | z1
------------------
t | t |
t | f |
f | t |
f | f |