| | |
| |
|
Исказ: „switch“ |
прегледано: |
200063 |
вкупно гласови: |
1 |
средна оценка: |
4.0 |
коментари: |
0 |
испрати до пријател
испечати
|
За разлика од исказите „if-then“ и „if-then-else“, исказот „switch“ дозволува неограничен број на можни патеки на извршувања, односно разгранувања. Овој исказ работи со одредени примитивни податочни типови и тоа: byte, short, char и int. Исто така исказот работи и со енумерирани типови и неколку посебни класи кои обвиткуваат некои од примитивните податочни типови: Character, Byte, Short и Integer.
Во наредниот пример имаме променлива која е декларирана од тип „int“ и која ќе ја содржи вредноста за месец од годината. При извршување програмот го прикажува името на месецот базирано на вредноста од променливата.
class SwitchDemo { public static void main(String[] args) {
int mesec= 8; switch (mesec) { case 1: System.out.println("Januari"); break; case 2: System.out.println("Februari"); break; case 3: System.out.println("Mart"); break; case 4: System.out.println("April"); break; case 5: System.out.println("Maj"); break; case 6: System.out.println("Juni"); break; case 7: System.out.println("Juli"); break; case 8: System.out.println("Avgust"); break; case 9: System.out.println("Septemvri"); break; case 10: System.out.println("Oktomvri"); break; case 11: System.out.println("Neomvri"); break; case 12: System.out.println("Dekemvri"); break; default: System.out.println("Nepoznat mesec.");break; } } }
Како резултат од овој програм на стандарден излез се испечатува „Avgust“.
Телото на „switch“ исказот е познат како „switch“ блок. Секој исказ содржан во овој блок може да биде маркиран со една или повеќе „case“ или „default“ лабели. Исказот „switch“ го евалуира изразот и го извршува потребиот „case“ лабел, односно исказот кој го има тој лабел. Секако истото ова како резултат можете да го добиете и со користење на if-then-else исказите.
int mesec = 8; if (mesec == 1) { System.out.println("Januari"); } else if (mesec == 2) { System.out.println("Februari"); } . . . // i taka naraka
Одлуката дали да се искористи if-then-else исказот или switch исказот понекогаш е зависно од потребите на решението (софтверот) кој го правиш. Како основа за одлуката кое да биде употребено може да биде, читливост на код, брзина на извршување итн. Исказот if-then-else може да се употреби при проверка на интервали каде исказот switch неможе да ти помогне, бидејќи тој може да работи само со едноставните погореопишани типови.
Исто така овде од интерес ни е и исказот „break“ после секој „case“. Секој „break“ исказ го терминира исказот „switch“, односно се наметнува излез од неговиот блок. Најчесто исказот „break“ е потребен, бидејќи без него ќе се изврши наредниот „case“ исказ и понатака. Во следниот пример ќе видиш зошто некористењето на „break“ исказот е полезно.
class SwitchDemo2 { public static void main(String[] args) {
int mesec= 2; int godina = 2000; int brojNaDenovi = 0;
switch (mesec) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: brojNaDenovi = 31; break; case 4: case 6: case 9: case 11: brojNaDenovi = 30; break; case 2: if ( ((godina % 4 == 0) && !(godina % 100 == 0)) || (godina % 400 == 0) ) brojNaDenovi= 29; else brojNaDenovi = 28; break; default: System.out.println("Nevaliden mesec."); break; } System.out.println("Broj na denovi = " + brojNaDenovi); } }
На стандарден излез ќе биде испечатено: Broj na denovi = 29
Технички гледано последниот „break“ исказ е непотребен, бидејќи секако ќе заврши „switch“ исказот. Но како и да е препорачано е да се користи исказот „break“ за да подоцнежното менување на изворниот код биде полесно и помалку подложно на грешки. Секцијата „default“ ги обработува сите вредности кога таа не е обработена од некоја „case“ секција.
|
|
|
|
|
|
| |
|
|
---|
JavaTM и Java-базираните ознаки се трговски марки или регистрирани трговски марки на Sun Microsystems, Inc. во САД и други држави. Java.com.mk никако не соработува со Sun Microsystems, Inc. Сите други трговски марки се сопственост на нивните сопственици. |
|