Чекор по чекор
Почетни чекори со Java
Објектно оријентирани концепти во Јава - Прв дел
Објектно оријентирани концепти во Јава - Втор дел
Објектно оријентирани концепти во Јава - Трет дел
Јава сервлети - Прв дел
Единствен Јава објект (singleton)
Најчести 10 грешки што ги прават Java програмерите
повеќе...
Што е тоа ...
... IDE
... Tomcat
... објект?
... класа?
... наследување?
... интерфејс?
... наследување? (прашања и одговори)
повеќе...
За загревање
Нов проект во Eclipse?
Примитивни податочни типови
Променливи
Оператори
Доделувачки, аритметички и Unary оператори
Оператори за еднаквост, релации и услови
Изрази, искази и блокови
повеќе...
Како да ...
... конвертирам java.sql.Timestamp во java.util.Date
... зададам формат на датум
... ковертирам „long“ во HEX и обратно
... прочитам датотека и променам стринг
... креирам ZIP датотека
... поврзам Apache и Tomcat користејќи mod_jk
... пратам недефиниран број на атрибути до некоја метода
повеќе...
Java преку примери
new Socket(String addr,int port)
new URL(String address)
new URL(String protocol, String host, int port, String file)
CommPort: getInputStream()
CommPortIdentifier: getPortIdentifiers()
Statement: executeQuery(String sql)
Statement: getMaxRows()
повеќе...
Грешка
Нов напис
Рубрика:
Наслов:
  
  

страна број:123
Исказ: „switch“
прегледано:  207456
 вкупно гласови:  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“ секција.


 
Коментирај
автор: Анонимус
Анонимните коментари ќе бидат објавувани веднаш после нивната проверка.
За да вашиот коментар биде веднаш валиден претходно пријавете се или креирајте свој профил


пребарување
најди
 
Форум
 
JugMK
GetJava Download Button
http://www.eclipse.org
 
 
 
 
Copyrights © 2006 - 2024 by Java.com.mk
Права и правила за користење на java.com.mk
Контакт адреса:
contact AT java.com.mk
Powered by Supernova v.0.70 beta
JavaTM и Java-базираните ознаки се трговски марки или регистрирани трговски марки на Sun Microsystems, Inc. во САД и други држави. Java.com.mk никако не соработува со Sun Microsystems, Inc.
Сите други трговски марки се сопственост на нивните сопственици.