Не можете сравнить с помощью If Statement в Java дикие ошибки Маркеры Не определены для аргументов? - PullRequest
0 голосов
/ 04 февраля 2011

Почему это говорит мне, что я не могу сравнить Ints? Я пытаюсь сравнить эту строку здесь, и она не даст мне все, что я получу, это:

if (counter1 = 0 || counter2 = 0)
  {
return false;
}

Вот остаток моего кода для справки.

public static boolean checkPassword(String password){
        int length;
        length = password.length();
            if (length < 6 || length > 11){
            System.out.println("Password must be 6 - 10 characters long!"); 
            return false;
            }


        int counter1 = 0;
        for (int i = 0; i < password.length(); i++){
            if (Character.isLetter(password.charAt(i)))
                counter1++;
        }

        int counter2 = 0;
        for (int i = 0; i < password.length(); i++){
            if(Character.isDigit(password.charAt(i)))
                counter2++;
        }

        if (counter1 = 0 || counter2 = 0)
        {
            return false;
        }

        return true;
        }

Я получаю неопределенные маркеры, помогите мне:)

Ответы [ 3 ]

4 голосов
/ 04 февраля 2011

Вы используете не тест на равенство ==, а оператор присваивания =.Это очень распространенная ошибка начинающих.

if (counter1 == 0 || counter2 == 0) {
    return false;
}
0 голосов
/ 04 февраля 2011

Потому что в Java = не используется для сравнения.Вам нужно использовать == Это должно быть

if (counter1 == 0 || counter2 == 0)
{
    return false;
}
0 голосов
/ 04 февраля 2011

Оператор counter1 = 0 является присваиванием, поэтому в конечном итоге вы пытаетесь if (0 || 0), но оператор || ожидает логические, а не целые числа. Вместо этого используйте ==.

...