Java 有人回复评论后所做的编辑。我犯了一个错误,所以我在发布后编辑了3秒钟。所以+1对于功能请求,帖子应该定期刷新。你也可以为布尔b:new boolean[]{true,false}编写。当然你是对的。出于某种原因,首先想到的是枚举:您也可以为布尔b编写:新布
Java 有人回复评论后所做的编辑。我犯了一个错误,所以我在发布后编辑了3秒钟。所以+1对于功能请求,帖子应该定期刷新。你也可以为布尔b:new boolean[]{true,false}编写。当然你是对的。出于某种原因,首先想到的是枚举:您也可以为布尔b编写:新布,java,boolean-expression,Java,Boolean Expression,有人回复评论后所做的编辑。我犯了一个错误,所以我在发布后编辑了3秒钟。所以+1对于功能请求,帖子应该定期刷新。你也可以为布尔b:new boolean[]{true,false}编写。当然你是对的。出于某种原因,首先想到的是枚举:您也可以为布尔b编写:新布尔[]{true,false}。当然,您是对的。出于某种原因,首先想到的是枚举:添加多余的括号不会增加任何确定性,它是否增加了可读性是一个品味的问题。请检查:这是一个创建可读性更好的代码的建议。JLS评估顺序:建议代码不要严重依赖于此规范。@s
有人回复评论后所做的编辑。我犯了一个错误,所以我在发布后编辑了3秒钟。所以+1对于功能请求,帖子应该定期刷新。你也可以为布尔b:new boolean[]{true,false}编写。当然你是对的。出于某种原因,首先想到的是枚举:您也可以为布尔b编写:新布尔[]{true,false}。当然,您是对的。出于某种原因,首先想到的是枚举:添加多余的括号不会增加任何确定性,它是否增加了可读性是一个品味的问题。请检查:这是一个创建可读性更好的代码的建议。JLS评估顺序:建议代码不要严重依赖于此规范。@shoetbi:这是嵌入到车辆中的C的编码标准,明确地受到Java中没有出现的问题的影响。第34条规则的动机是C中缺少布尔值,我觉得它一点也不可读@Carlos:JLS声明特别提到了从左到右的评估规则,在副作用和例外情况下。不指定运算符优先级。实际上,每个Java程序都“至关重要”地依赖于Java规范。他们真的不会改变运算符对我们的优先级。也许只有我。我从来没有遇到过这些问题。添加多余的括号并不能增加任何确定性,它是否增加了可读性是一个品味的问题。请检查:这是一个创建可读性更好的代码的建议。JLS评估顺序:建议代码不要严重依赖于此规范。@shoetbi:这是嵌入到车辆中的C的编码标准,明确地受到Java中没有出现的问题的影响。第34条规则的动机是C中缺少布尔值,我觉得它一点也不可读@Carlos:JLS声明特别提到了从左到右的评估规则,在副作用和例外情况下。不指定运算符优先级。实际上,每个Java程序都“至关重要”地依赖于Java规范。他们真的不会改变运算符对我们的优先级。也许只有我。我从来没有这些问题。
package main;
import junit.framework.Assert;
public class Test
{
enum BOOL
{
TRUE(true), FALSE(false);
private boolean m_val;
BOOL(boolean val)
{
m_val = val;
}
public boolean getValue()
{
return m_val;
}
}
@org.junit.Test
public void test1()
{
boolean a,b,c;
for (BOOL boola : BOOL.values())
{
for (BOOL boolb : BOOL.values())
{
for (BOOL boolc : BOOL.values())
{
a = boola.getValue();
b = boolb.getValue();
c = boolc.getValue();
boolean exp1 = !a || (a && b && c);
boolean exp2 = !a || a && b && c;
Assert.assertEquals(exp1, exp2);
}
}
}
}
}
A B C F1 F2
0 0 0 1 1
0 0 1 1 1
0 1 0 1 1
0 1 1 1 1
1 0 0 0 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1
public class TestLogic {
public static void main(String[] args) {
for (int i=0;i<8;i++) {
boolean a=bit(i,3);
boolean b=bit(i,2);
boolean c=bit(i,1);
System.out.println(asZeroOne(a)+asZeroOne(b)+asZeroOne(c)+"\t"+asZeroOne(f1(a,b,c))+"\t"+asZeroOne(f2(a,b,c)));
}
}
static boolean f1(boolean a, boolean b, boolean c) {
return !a || (a && b && c);
}
static boolean f2(boolean a, boolean b, boolean c) {
return !a || a && b && c;
}
static boolean bit(int value, int bitnumber) {
int bitmask = (int) Math.pow(2, bitnumber-1);
return (value & bitmask)>0;
}
static String asZeroOne(boolean b) {
return (b?"1":"0");
}
}