在这段代码中,从我所看到的一切来看,它应该是进入for
循环然后进入if
语句,只要你输入 1 和 0,这就是我正在做的。正如我从我的打印声明中看到的那样,它没有进入它。
我不明白为什么。
如果它确实进入了if
语句,我也不确定该怎么做,因为我怀疑它只会true
在最后一位不是 1 或 0 时设置:我的意图zeroesAndOnes
是false
如果输入了 1 和 0 之外的任何内容。然而,就目前而言,它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.");
}