Всем привет, здесь мы учимся программировать на Java, и шестой урок. Ну, поехали!
Начнем с такого типа данных, как boolean — это еще один вид переменных, который называется логический. Переменная типа boolean может иметь только одно из двух значений: true(истина) или false(ложь).
В объектно-ориентированном программировании(ООП), в которое мы углубимся в будущем, зачастую у различных объектов будет множество атрибутов — сейчас поясню на понятном языке. Допустим, у нас есть какой-то герой, и у него есть атрибут «live», обозначающий жив ли наш герой, то есть переменная «live» может иметь или значение true, или же false. Также вам стоит знать, что true — это константа, равная 1, а false эквивалентно числу 0.
На практике очень удобно использовать данный тип переменных, например в условном операторе if. Что же собой собой представляет этот «условный оператор» и как вообще это работает? Он нужен для того, чтобы определенные команды выполнялись только при соблюдении заданных условий. Имеет структуру из: самого слова if; условия, заданного в обычных скобках (); и команд, которые выполняться при верности условий. Допустим, если время уже 10 часов вечера, то нужно сообщить, что Маше пора спать:
1 2 3 4 5 6 7 8 9 10 |
public class Main { public static void main(String[] args) { String time = "10:00"; if(time == "10:00") System.out.print("Маша, пора спать!"); } } // Программа выведет "Маша, пора спать!" |
Вы могли обратить внимание на строчку if(time == «10:00») — почему два раза знак равно? Дело в том, мы в Java = используется для присвоения, а == для сравнения значений. Логично предположить, что раз можно проверить на равенство, то можно и по другим признакам? Конечно можно, вот список операторов, доступных в условных выражениях:
== | Равно |
!= | Не равно |
> | Больше |
>= | Больше или равно |
< | Меньше |
<= | Меньше или равно |
Сразу простенький примерчик:
1 2 3 4 5 6 7 8 9 10 |
public class Main { public static void main(String[] args) { int a = 29 if(a > 20) System.out.print(a+1); } } // Итогом программы будет выведенное число 30 |
Хочу познакомить вас с еще парочкой интересных операторов: // и %. Первый оператор называется делением без остатка. Давайте сравним его с обычным делением: 5 / 2 = 2.5; 5 // 2 = 2. Думаю, все понятно. А вот следующий оператор поинтересней. Символ % помогает получить остаток от деления, сразу пример: 10 % 3 = 1; 22 % 8 = 6. Зачастую его используют для определения четности и нечестности вместе с if:
1 2 3 4 5 6 7 8 9 10 |
public class Main { public static void main(String[] args) { int a = 8; if(a%2==0) a = a+1; } } // Так как число делится на 2 без остатка, но программа выведет число 9 |
Давайте двигаться дальше, если нам нужно написать несколько команд, то необходимо использовать фигурные скобки {}, иначе if возьмет только первую строку:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public class Main { public static void main(String[] args) { a = 5; if(a > 1){ a = a+1; a = a*2; System.out.print(a); } } } // Итоговым значением переменной "a", которую программа выведет на экран, будет число 12 |
Существует расширенный вариант с использованием else, который будет работать при ложности условия if:
1 2 3 4 5 6 7 8 9 10 11 12 |
public class Main { public static void main(String[] args) { int a = 10; if(a%3 == 0) System.out.print(a+1); else System.out.print(a-1); } } // Так как число не делится на три без остатка, то выполниться "else" и выведет число 9 |
Можно использовать и блоки операторов, тогда все это будет выглядеть так:
if(условие){
команда 1;
команда 2;
}
else{
команда 3;
команда 4;
}
Зачастую используют так называемую цепочку операторов if-else-if, тоже крайне полезная штука:
if(условие 1)
команда 1;
else if(условие 2)
команда 2;
else if(условие 3)
команда 3;
.
.
.
else
команда какая-то там;
Каждое из условий будет проверяться сверху вниз. Если какое-то из них окажется верным, то выполнятся команды этого блока выполняться, а все последующие условия даже не будут проверяться. То есть, если условие 2 верно, то выполнится только команда 2, а остальное программа попросту пропустит. Если ни одно условие не верно, то выполнится else. А если и else нет, то не выполнится ничего.
Никто не запрещает их все это комбинировать, совмещать и использовать как только душа того пожелает, только не запутайтесь в фигурных скобках 🙂
Осталось разобрать еще кое-что, и я от вас отстану. Разберем логические операторы, возможно раннее вы с ними сталкивались:
&& | Логическое AND(И) |
|| | Логическое OR(ИЛИ) |
& | Сокращенное AND |
| | Сокращенное OR |
Их зачастую используют для комбинирования условий. Логическое И && используется, когда необходима верность всех условий, а Логическое ИЛИ || требует истинности хотя бы одного из них:
1 2 3 4 5 6 7 8 9 10 11 |
public class Main { public static void main(String[] args) { int a = 10; if(a>5 && a<15) System.out.println("Число находится в интервале (5; 15)"); if(a==9 || a==10 || a==11) System.out.print("Число равно или 9, или 10, или 11"); } } |
Результат программы будет таков:
1 2 |
Число находится в интервале (5; 15) Число равно или 9, или 10, или 11 |
Сокращенные же варианты этих логических операторов работают следующим образом — Сокращенное И & перестает проверят оставшиеся условия, если наткнется на неверное, в отличие jот &&, которое все равно проверит все варианты. А для Сокращенного ИЛИ | достаточно верности хотя бы одного первого условия, чтобы перейти к выполнению команд в блоке условного оператора.
На этом все, надеюсь я смог вам дать что-то новое, до новых встреч!
Переходите на следующий урок:
https://informatikaexpert.ru/uchimsya-programmirovat-na-java-urok-6-cikl-while/