- Müqayisə və məntiqi operatorlarla şərt yazmaq
if,else if,elsevə ternar operatordan istifadə etmək- Klassik
switchoperatorunu müasir switch ifadəsindən fərqləndirmək
Hava soyuqdursa, gödəkçə geyin; yağış yağırsa, çətir götür. Biz hər gün şərtlərə əsasən qərar veririk. Proqramlar da belədir: bankomat yalnız PIN kod düzgün olanda pul verir, oyun isə canların sayı sıfıra düşəndə bitir. Bu dərsdə Java proqramına qərar verməyi öyrədəcəksən.
Müqayisə və məntiqi operatorlar
Şərt həmişə boolean qiymət verir: true və ya false. Şərtləri müqayisə operatorları ilə qururuq, bir neçə şərti isə məntiqi operatorlarla birləşdiririk.
| Operator | Mənası | Nümunə | Nəticə |
|---|---|---|---|
== | bərabərdir | age == 15 | true |
!= | bərabər deyil | age != 15 | false |
< > | kiçikdir, böyükdür | age > 18 | false |
<= >= | kiçik və ya bərabər, böyük və ya bərabər | age >= 12 | true |
&& | VƏ: hər iki şərt doğrudur | age > 10 && age < 18 | true |
|| | VƏ YA: ən azı bir şərt doğrudur | age < 6 || age > 65 | false |
! | DEYİL: nəticəni tərsinə çevirir | !(age == 15) | false |
age = 15 götürülüb.public class Main {
public static void main(String[] args) {
int age = 15;
boolean hasTicket = true;
System.out.println(age >= 12 && hasTicket);
System.out.println(age < 12 || !hasTicket);
System.out.println(age == 15);
System.out.println(age != 15);
if (hasTicket && age >= 12) {
System.out.println("Welcome to the film!");
} else {
System.out.println("Sorry, no entry.");
}
}
}true false true false Welcome to the film!
&& məntiqi VƏ (AND) elementi kimi işləyir: çıxış yalnız hər iki giriş true (1) olanda true olur. Girişləri dəyiş və doğruluq cədvəlini yoxla.if, else if və else
if açar sözündən sonra mötərizədə şərt, fiqurlu mötərizədə isə şərt doğru olanda icra olunacaq kod yazılır. else if növbəti şərti yoxlayır, else isə heç bir şərt ödənməyəndə işə düşür. Java şərtləri yuxarıdan aşağı yoxlayır və ilk doğru şərtin blokunu icra edir — qalanları atlanır.
public class Main {
public static void main(String[] args) {
int score = 78;
if (score >= 90) {
System.out.println("Excellent");
} else if (score >= 70) {
System.out.println("Good");
} else if (score >= 50) {
System.out.println("Pass");
} else {
System.out.println("Fail");
}
String result = score >= 50 ? "passed" : "failed";
System.out.println("The test is " + result);
}
}Good The test is passed
78 həm 70-dən, həm də 50-dən böyükdür, amma yalnız «Good» çap olundu, çünki ilk doğru şərt score >= 70 idi. Sonuncu sətirlərdə ternar operator var: şərt ? A : B. Şərt doğrudursa, ifadənin qiyməti A, əks halda B olur. İki qiymətdən birini seçmək lazım olanda o, qısa if/else rolunu oynayır.
Klassik switch
Bir dəyişəni çoxlu konkret qiymətlə müqayisə etmək lazımdırsa, uzun if/else if zənciri əvəzinə switch yazmaq olar. switch int, char, String və enum qiymətləri ilə işləyir. Klassik formada hər case-in sonunda break qoyulmalıdır — əks halda icra növbəti case-ə «axıb keçir» (fall-through):
public class Main {
public static void main(String[] args) {
int level = 2;
switch (level) {
case 1:
System.out.println("Easy");
case 2:
System.out.println("Medium");
case 3:
System.out.println("Hard");
break;
default:
System.out.println("Unknown level");
}
}
}Medium Hard
level 2-dir, ona görə icra case 2-dən başlayır. case 2-də break olmadığı üçün proqram case 3-ə keçir və «Hard» sözünü də çap edir. switch-dən yalnız break çıxarır. default bloku isə heç bir case uyğun gəlməyəndə işləyir.
Switch ifadələri
Java 14-dən başlayaraq switch ifadə kimi də yazıla bilər: o, qiymət qaytarır və nəticəni birbaşa dəyişənə mənimsətmək olar. Ox -> ilə yazılmış case-lərdə «axıb keçmə» yoxdur, break lazım deyil, bir case-də isə vergüllə bir neçə qiymət sadalamaq olar. Bütöv blok lazım olanda qiymət yield ilə qaytarılır.
public class Main {
public static void main(String[] args) {
String day = "SAT";
String type = switch (day) {
case "SAT", "SUN" -> "weekend";
case "MON", "TUE", "WED", "THU", "FRI" -> "weekday";
default -> "unknown";
};
System.out.println(day + " is a " + type);
int month = 2;
int year = 2028;
int days = switch (month) {
case 4, 6, 9, 11 -> 30;
case 2 -> {
boolean leap = year % 4 == 0 && (year % 100 != 0 || year % 400 == 0);
yield leap ? 29 : 28;
}
default -> 31;
};
System.out.println("Days in month " + month + ": " + days);
}
}SAT is a weekend Days in month 2: 29
Əsas fikirlər
- Şərt
booleanqiymət verir; müqayisə üçün==,!=,<,>,<=,>=işlədilir. &&(VƏ),||(VƏ YA) və!(DEYİL) şərtləri birləşdirir; Java nəticəni dəyişməyəcək hissəni hesablamır.if / else if / elsezəncirində yalnız ilk doğru şərtin bloku icra olunur.- Ternar operator
şərt ? A : Biki qiymətdən birini seçir. - Klassik
switch-dəbreakunudulsa, icra növbəticase-ə keçir;->ilə yazılan switch ifadəsi isə qiymət qaytarır və axıb keçmir.
Özünü yoxla
10 sual. Hər düzgün cavab XP qazandırır.
age = 15 olduqda age > 10 && age < 14 ifadəsi nəyə bərabərdir?