If operatori If-else Switch/case


Download 107.49 Kb.
bet3/3
Sana28.12.2022
Hajmi107.49 Kb.
#1017981
1   2   3
Bog'liq
5 Ma'ruza

3. switch/case operatorlari
Switch operatori o'zgarmaydigan yoki ifoda qiymatiga asoslangan bayonotlarni bajaradi. If Listing 3.5 -dagi ifoda ComputeTax.java bitta haqiqiy qiymatga asoslanib tanlov qiladi. yoki noto'g'ri shart. Soliqlarni hisoblashning to'rtta holati mavjud, ular ish holatining qiymatiga bog'liq. Barcha holatlarni to'liq hisobga olish uchun, agar bayonotlar ishlatilgan bo'lsa. Ichkaridan ortiqcha foydalanish. Agar bayonotlar dasturni o'qishni qiyinlashtirsa. Java bir nechta shartlar uchun kodlashni soddalashtirish uchun switch iborasini taqdim etadi. 3 -ro'yxatdagi joylashtirilgan if iborasini almashtirish uchun quyidagi switch iborasini yozishingiz mumkin:
switch (status) {
case 0: compute tax for single filers;
break;
case 1: compute tax for married jointly or qualifying widow(er);
break;
case 2: compute tax for married filing separately;
break;
case 3: compute tax for head of household;
break;
default: System.out.println("Error: invalid status");
System.exit(1);
}


Ushbu bayonot holatning 0, 1, 2 yoki 3 qiymatiga mos kelishini tekshiradi. Agar mos keladigan bo'lsa, tegishli soliq hisoblab chiqiladi; agar ular mos kelmasa, xabar ko'rsatiladi. Bu erda switch iborasining to'liq sintaksisi:
switch (switch-expression) {
case value1: оператор (i) 1;
break;
case value2: statement(s)2;
break;
...
case valueN: statement(s)N;
break;
default: statement(s)-for-default;
}
Switch bayonoti quyidagi qoidalarga amal qiladi:
Kalit ifodasi char, bayt, qisqa, int yoki String bo'lishi kerak. yozing va har doim qavs ichida bo'lishi kerak. (Char va String turlari keyingi bobda tanishtiriladi.)
■ 1 -qiymat. ... ., va valueN almashish ifodasi qiymati bilan bir xil ma'lumot turiga ega bo'lishi kerak. E'tibor bering, qiymat1,. ... ., va valueN - doimiy ifodalar, ya'ni ular 1 + x kabi o'zgaruvchilarni o'z ichiga olmaydi.
■ Vaziyat bayonnomasidagi qiymat switch iborasi qiymatiga mos kelganda, bu holatdan boshlanadigan bayonotlar break bayonoti paydo bo'lguncha yoki switch iborasining oxiriga yetguncha bajariladi.
■ Majburiy bo'lmagan ixtiyoriy holat, ko'rsatilgan holatlarning hech biri kalit ifodasiga mos kelmasa, amallarni bajarish uchun ishlatilishi mumkin.
■ Kalit so'zlar tanaffusi ixtiyoriy. Break bayonoti darhol almashtirish tugmachasini to'ldiradi.
Zarur bo'lganda break so'zidan foydalanishni unutmang. Vaziyat topilgandan so'ng, mos keluvchi holatdan boshlanadigan bayonotlar break yoki switch iborasining oxirigacha bajariladi. Bunga muvaffaqiyatsizlik deyiladi. Masalan, quyidagi kodda ish kunlari 1 dan 5 gacha va dam olish kunlari ko'rsatiladi. 0 va 6 -kunlar uchun.
switch (day) {
case 1:
case 2:
case 3:
case 4:
case 5: System.out.println("Weekday"); break;
case 0:
case 6: System.out.println("Weekend");
}
LISTING 3.1 ChineseZodiac.java
1 import java.util.Scanner;
2
3 public class ChineseZodiac {
4 public static void main(String[] args) {
5 Scanner input = new Scanner(System.in);
6
7 System.out.print("Enter a year: ");
8 int year = input.nextInt();
9
10 switch (year % 12) {
11 case 0: System.out.println("monkey"); break;
12 case 1: System.out.println("rooster"); break;
13 case 2: System.out.println("dog"); break;
14 case 3: System.out.println("pig"); break;
15 case 4: System.out.println("rat"); break;
16 case 5: System.out.println("ox"); break;
17 case 6: System.out.println("tiger"); break;
18 case 7: System.out.println("rabbit"); break;
19 case 8: System.out.println("dragon"); break;
20 case 9: System.out.println("snake"); break;
21 case 10: System.out.println("horse"); break;
22 case 11: System.out.println("sheep");
23 }
24 }
25 }
enter year
determine Zodiac sign
Enter a year: 1963
rabbit
Enter a year: 1877
Ox

Nazorat savollari:
1. If / else qanday ishlaydi?
2. Switch / case qanday ishlaydi?
3. if / else va switch / case o'rtasidagi farq nima?
Download 107.49 Kb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling