#3. Вводный курс по языку программирования JAVA. Условные операторы

<<Предыдущий урок   Список уроков   Следующий урок>>

Условные операторы в Java

Java использует булевские (логические) переменные, чтобы оценивать условия. Значение true или false возвратится, после того как выражение будет оценено. Например:

int a = 4;
boolean b = a == 4;
if (b) {
    System.out.println("It's true!");
}

Конечно, мы обычно не присваиваем условное выражение булевской переменной, мы просто используем короткую версию:

int a = 4;
if (a == 4) {
    System.out.println("Ohhh! So a is 4!");
}

Логические операторы

Есть не так много операторов, которые можно использовать в условиях. Вот они:

int a = 4;
int b = 5;
boolean result;
result = a < b;  // истина result = a > b;  // ложь
result = a <= 4; // меньше или равно - истина result = b >= 6;  // больше или равно - ложь
result = a == b;  // равно - ложь
result = a != b;  // неравно - истина
result = a > b || a < b;  // логическое ИЛИ - истина
result = 3 < a && a < 6;  // логическое И - истина
result = !result;  // Логическое НЕ - ложь

Оператор if – else

Синтаксис оператора if – else довольно прост:

if (a == b) {
    // Тело метода. Выполняется если a и b равны.
}

Так же мы можем добавить еще одно выражение, на случай, если условие не выполняется:

if (a == b) {
    // Мы уже знаем эту часть
} else {
    // a и b не равны... :/
}

Если тело метода можно разместить в одну строку, можно не использовать { }

if (a == b) System.out.println("Yeah!");
else System.out.println("Ohhh...");

Или

if (a == b)
    System.out.println("Another line Wow!");
else
    System.out.println("Double rainbow!");

Несмотря на то, что такой метод мог бы сделать ваш код короче, мы строго рекомендуем новичкам не использовать короткую версию условного оператора

Другая сторона if

Есть еще один способ записать if – else в одну строку – с помощью оператора ? :

int a = 4;
int result = a == 4 ? 1 : 8;
// result будет равен 1
// Или обычная форма записи:
int result;
if (a == 4) {
    result = 1;
} else {
    result = 8;
}

Опять же, мы не рекомендуем новичкам использовать эту версию if.

Операторы == и equals

Оператор == работает немного по-другому на объектах, нежели на примитивах. Когда вы используем объекты и хотите проверить, равны ли они, оператор == скажет что они равны, только если объекты одинаковы, но если вы хотите проверить их на логическое соответствие, используйте метод equals. Например:

String a = new String("Wow");
String b = new String("Wow");
String sameA = a;

boolean r1 = a == b;      // Ложь, так как a и b не один и тот же объект
boolean r2 = a.equals(b); // Истина, так как a и b логически равны
boolean r3 = a == sameA;  // Истина, так как a и sameA действительно один и тот же объект

Попрактикуйтесь в написании кода, прежде чем перейти к следующему уроку.

Дополнительное чтение:

Все операторы языка Java

Конструкции выбора в языке Java

<<Предыдущий урок   Список уроков   Следующий урок>>

Коментарі: 10
  1. Станислав

    Эта часть кода (как и некоторые другие, просто эта более яркая для примера) не верна, т.к. скомпилировав в Android Studio (у меня версия 1.5.1) компилятор воспримет это не как ложь, а как правду.
    String a = new String(“Wow”);
    String b = new String(“Wow”);
    String sameA = a;

    boolean r1 = a == b; // Ложь, так как a и b не один и тот же объект

  2. Анатолий

    У меня вопрос :в питоне если не хватает if и else после if можно использовать elif пример:

    if(x==5):
    print(“ага”)
    elif(x ==8):
    print(“почти”)
    else:
    print(“нет”)
    а есть какой-то аналог в яве?

  3. нихрена не понимаю (((……..

    1. Father for Python

      Если вы не понимаете курс, скорее всего вы только начали разбираться в программировании. Java усложненная версия языка C++ который сам по себе сложный. Не в коем случае не начинайте обучение c JAVA это самоубийство. Идеальный переход:
      python-pascal-c++-java Если вы гипер умный можете обойтись без паскаль, он вам не пригодится.

  4. Да: = означает присваивание, == логический оператор.

  5. Какая разница между == и = ? Это одно и тоже?
    Или == значит равно а = означает присваивание?

    1. Father for Python

      == логический оператор, который обычно используется в циклах. = присваивание

Додати коментар