このコード セグメントでは、私が見ているすべてのものから、1 と 0 を入力している限り、for
ループに入ってからステートメントに入る必要があります。これが私が行っていることです。if
印刷ステートメントから見たように、それは入っていません。
理由がわかりません。
ステートメントに入った場合、最後のビットが1または0でない場合if
にのみ設定されるのではないかと疑っているため、どうすればよいかわかりtrue
ません。私の意図は、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.");
}