输入if语句

时间:2016-07-06 20:34:17

标签: java if-statement boolean parity

在这段代码中,从我看到的所有内容开始,只要输入1和0,就应该进入for循环然后进入if语句,这就是我所说的我在做。正如我从我的印刷声明中看到的那样,它没有进入它。

我没有看到原因。

如果它确实输入了if语句,我也不确定该怎么做,因为我怀疑它只会设置true如果最后一位不是1或0:我的意图是如果输入除1和0之外的任何内容,zeroesAndOnesfalse。但是,就目前而言,它始终是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.");
        }

2 个答案:

答案 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')