你好,我是 Java 世界的新手,我卡在我的代码中,这将是一个非常好的帮助 p
我在这段代码中遇到了一个布尔问题/
public class Variables {
boolean bit;
String name;
public Variables(int b, String name){
this.name = name;
bit = test(b);
}
public boolean test(int b) {
System.out.println(b);
if(b==49) {
return true;
}
if(b==48) {
return false;
}
else {
return false;
}
}
}
问题是它不断返回真实的 b 的数量实际上我试图让数字 1 或 0 女巫在一个字符中并转换为布尔 t/f
提前致谢
更多代码
public class truthtable2 {
public ArrayList <Variables[]>bits = new ArrayList<>();
public truthtable2 (ArrayList <String> inputs){
String [] inputsTab = inputs.toArray(new String[inputs.size()]);
Variables[] bittab = new Variables[inputsTab.length];
int total = (int) (Math.pow(2,inputs.size()))-1;
String tab[]=new String[total+1];
for(int i =0;i<=total;i++){
tab[i]=(String.format("%16s", Integer.toBinaryString(i)).replace(' ', '0'));
}
for(int i = 0;i<tab.length;i++){
char[] chars = tab[i].toCharArray();
for(int x = 0;x<inputs.size();x++){
int d = 15-x;
bittab[x]= new Variables(chars[d], inputsTab[x]);
}
bits.add(bittab);
}
for(Variables[] d: bits){
for(int f = 0;f<d.length;f++){
System.out.format("%4s %4s \n",d[f].bit,d[f].name);
}
}
}
}
编辑
'0' -->A false
'0' -->B false
'0' -->Cin false
'1' -->A true
'0' -->B false
'0' -->Cin false
'0' -->A false
'1' -->B true
'0' -->Cin false
'1' -->A true
'1' -->B true
'0' -->Cin false
'0' -->A false
'0' -->B false
'1' -->Cin true
'1' -->A true
'0' -->B false
'1' -->Cin true
'0' -->A false
'1' -->B true
'1' -->Cin true
'1' -->A true
'1' -->B true
'1' -->Cin true
编辑 2
在这次执行中
for(Variables[] d: bits){
for(int f = 0;f<d.length;f++){
System.out.format("%4s %4s \n",d[f].bit,d[f].name);
我有这个结果
true A
true B
true Cin
true A
true B
true Cin
true A
true B
true Cin
true A
true B
true Cin
true A
true B
true Cin
true A
true B
true Cin
true A
true B
true Cin
true A
true B
true Cin