почему моя программа завершает работу перед проверкой второго условия в Java

Java имеет пул строк, в котором Java управляет распределением памяти для объектов String. См. String Pools в Java

Когда вы проверяете (сравниваете) два объекта с помощью оператора ==, он сравнивает равенство адресов в пуле строк. Если два объекта String имеют одинаковые адреса, то он возвращает true, в противном случае false. Но если вы хотите сравнить содержимое двух объектов String, вы должны переопределить метод equals.

equals - фактически метод класса Object, но он переопределяется в класс String и дается новое определение, которое сравнивает содержимое объекта.

Example:
    stringObjectOne.equals(stringObjectTwo);

Но помните, что это относится к случаю String. Если вы хотите сравнить регистр без учета регистра, вы должны пойти для метода equalsIgnoreCase класса String.

Давайте посмотрим:

String one   = "HELLO"; 
String two   = "HELLO"; 
String three = new String("HELLO"); 
String four  = "hello"; 

one == two;   // TRUE
one == three; // FALSE
one == four;  // FALSE

one.equals(two);            // TRUE
one.equals(three);          // TRUE
one.equals(four);           // FALSE
one.equalsIgnoreCase(four); // TRUE

-4
задан khelwood 25 February 2019 в 15:03
поделиться

3 ответа

Одна проблема здесь:

while ( final3 == final1 && final3 == final2);

Должно быть

while ( final3 == final1 || final3 == final2);

Условие должно быть ИЛИ, а не И.

При этом я предполагаю, что это для класса, который вы посещаете. Я дам вам несколько советов. Все это может быть сделано намного проще и понятнее с помощью знаний, которые вы уже продемонстрировали в приведенном выше коде. Вам просто нужно больше думать о том, как можно более эффективно использовать циклы и классы для достижения своей цели.

0
ответ дан ck1221 25 February 2019 в 15:03
поделиться

Следуйте этой отладочной документации в Eclipse здесь .

Шаг 1 Добавьте точки останова в свой код.

Шаг 2 Отладка как приложение java и проверка по одному

0
ответ дан 25 February 2019 в 15:03
поделиться

Я бы порекомендовал вам класс Course.

public class Course {
    private String name;
    private int capacity;
    private int enrollment;
    private Date finalExamDate;

    // You add the rest.
}

Вы можете добавить CourseCatalog, который хранит List<Course> экземпляров курса.

Еще не слишком скоро узнать о JUnit . Держите свои классы и тестовый код отдельно.

0
ответ дан duffymo 25 February 2019 в 15:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: