在这段代码中,从我看到的所有内容开始,只要输入1和0,就应该进入for
循环然后进入if
语句,这就是我所说的我在做。正如我从我的印刷声明中看到的那样,它没有进入它。
我没有看到原因。
如果它确实输入了if
语句,我也不确定该怎么做,因为我怀疑它只会设置true
如果最后一位不是1或0:我的意图是如果输入除1和0之外的任何内容,zeroesAndOnes
为false
。但是,就目前而言,它始终是false
。
System.out.println("Please enter a 32 bit number consisting of "
+ "1's and 0's.");
String number = kb.nextLine();
int count = 0;
boolean zeroesAndOnes = false;
for(int i = 0; i < number.length(); i++){
if(number.charAt(i) == '0' || number.charAt(i) == '1'){
zeroesAndOnes = true;
System.out.println("If boolean " + zeroesAndOnes);
}
else{
zeroesAndOnes = false;
count++;
}
}
System.out.println("If boolean end " + zeroesAndOnes);
if(number.length() == 32 && count > 1){
if(number.charAt(0) + number.charAt(1) % 2 == 1){
symmDiff = 1;
}
else{
symmDiff = 0;
}
for(int i = 2; i < number.length(); i++){
if((symmDiff + number.charAt(i)) % 2 == 1){
symmDiff = 1;
}
else{
symmDiff = 0;
}
}
System.out.println("The parity bit for this number is " + symmDiff);
}
else{
System.out.println("These numbers do not match the specification.");
}
答案 0 :(得分:2)
检查char相等性时,请确保比较符合您的要求。例如
if(number.charAt(i) == 0)
检查十进制值是否相等。检查实际的&#39; 0&#39; char,比较char值
if ( number.charAt(i) == '0' )
答案 1 :(得分:0)
用于比较您应该使用的字符
[[A, X], [A, Y], [A, Z], [B, X], [B, Y], [B, Z]]
另一个问题是number.charAt(0)会给你char而不是int。所以当你做的时候
if(number.chartAt(i) == '0')