在这段代码中,从我看到的所有内容中,只要输入1和0,就应该输入for
循环,然后输入if
语句,这正是我正在做的。它并没有进入它,正如我从我的印刷报告中看到的那样。输入if语句
我没有看到一个原因。
如果它没有进入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.");
}
'number.charAt(I)== 0'你可能希望在这里例如比较char值'number.charAt(I)==“0'' – copeg
谢谢!这解决了这个问题。你碰巧对第二部分有任何想法 - 我现在如何拥有它,最终位决定它是真是假。只有当所有的位都是1或0时,我才希望它是真实的,但我想不出任何东西。 – Tonantzin
当您找到“1”或“0”时,请停止将其设置为“true”。将布尔值初始化为“true”而不是“false”,并且只有在发生违规时才将其设置为“false”。一旦出现“假”,切勿将其重新设置为“true”。 –