В этом сегменте кода, из всего, что я вижу, он должен вводить цикл for
, а затем оператор if
, если вы вводите 1 и 0, что я и делаю. Он не входит в него, как я видел из моих заявлений на печать.Ввод оператора 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 (я) == 0 'Вы, вероятно, хотите сравнить полукокса значения здесь, например,' number.charAt (я) == «0'' – copeg
Спасибо! Это исправило эту проблему. Есть ли у вас какие-либо идеи о второй части - с тем, как я ее сейчас, конечный бит определяет, является ли это истиной или ложью. Я хотел, чтобы это было правдой, только если ВСЕ бит 1 или 0, но я ничего не могу придумать. – Tonantzin
Остановите настройку «true», если вы найдете «1» или «0». Инициализируйте логическое значение «true» вместо «false» и установите его только «false», если есть нарушение. Никогда не устанавливайте его на 'true', если это' false'. –