Se afișează postările cu eticheta fall-through. Afișați toate postările
Se afișează postările cu eticheta fall-through. Afișați toate postările

luni, 29 septembrie 2025

Instrucțiuni de decizie în Limbajul Java

 Instrucțiunea if-else

Sintaxă:                                    

if (expresie) {

... lista instrucțiuni }

else  {

... lista instrucțiuni }

Semantică:

Se evaluează expresia dintre paranteze care trebuie sa returneze o valoare booleană. Dacă ea returnează true atunci se execută lista de instrucțiuni din corpul if. Dacă ea returnează false se execută lista de instrucțiuni else.

 

Exemplu:

int x = 4;

if( x % 2 == 0 )

x = 100;

else

x = 1000;             

Instrucțiunea if  poate avea mai multe forme:






Instrucțiunea switch-case

Sintaxă:

switch (expresie) {

   case valoare_particulara1 : < expresie 1 >    break;

   case valoare_particulara2 : < expresie 2 >    break;

    …

   default : < expresie >

  }

Semantică:

Execuţia instrucțiunii switch începe întotdeauna prin evaluarea expresiei dintre parantezele rotunde. Această expresie trebuie să fie de tipul caracter, octet, întreg scurt sau întreg. Selectorul instrucțiunii switch poate fi și de tip String începând cu versiunea Java 7.

 După evaluarea expresiei se trece la compararea valorii rezultate cu valorile particulare specificate în etichetele case din interiorul blocului de instrucțiuni. Dacă una dintre valorile particulare este egală cu valoarea expresiei, se execută instrucțiunile începând de la eticheta case corespunzătoare acelei valori în jos, până la capătul blocului. Dacă nici una dintre valorile particulare specificate nu este egală cu valoarea expresiei, se execută instrucțiunile care încep cu eticheta default, dacă aceasta există.

Este important ca fiecare expresie de tip case să fie terminată cu instrucțiunea break deoarece aceasta asigura ieșirea din structură.

Notă!

1.     Constantele case trebuie să fie de același tip ca și selectorul.

2.     Nu pot exista 2 constante case cu același nume.

3.     Cel mult o constantă poate fi asociată unui selector.

 

Exemplu switch cu selector de tip int:


public class Main{

  public static void main(String[] args) {

   int selector = 2;

    switch(selector){

     case 1:

       System.out.println("Valoarea este egala cu 1");

     break;

     case 2:

       System.out.println("Valoarea este egala cu 2");

     break;

     case 3:

       System.out.println("Valoarea este egala cu 3");

     break;

     case 4:

       System.out.println("Valoarea este egala cu 4");

     break;

   default:

      System.out.println("Valoarea nu aparține intervalului");

    }

}}



Rezultat: 


Exemplu switch cu break omis:


public class Main{

  public static void main(String[] args) {

   int selector = 6;

    switch(selector){

     case 2:

     case 4:

     case 6:

     case 8:

       System.out.println("Numar par");

     break;

   default:

      System.out.println("Numar impar");

    }

}}


Rezultat: 


Notă! Într-un switch, dacă nu pui break, programul continuă să execute și instrucțiunile din cazurile următoare. Acest comportament se numește fall-through.

Poate fi util pentru a grupa cazuri similare, dar dacă uiți break din greșeală, programul poate produce rezultate neașteptate. 



Exemplu switch cu selector de tip String:


public class Main{

  public static void main(String[] args) {

  String luna = "Iunie";

  switch (luna) {

    case "Iunie":

    case "Iulie":

    case "August":

       System.out.println("E vară");

    break;

   default:

    System.out.println("Nu e vară");

}

}} 




Exemplu de expresie cu switch: Începând cu Java 12, instrucțiunea switch a fost extinsă și poate fi folosită nu doar ca o structură de control, ci și ca o expresie care returnează o valoare. 
Asta înseamnă că putem atribui direct rezultatul unui switch unei variabile. 

public class Main{
  public static void main(String[] args) {
   int valoare = 3;
   String rezultat = switch (valoare) {
    case 1 -> "unu";
    case 2 -> "doi";
    case 3, 4 -> "trei sau patru";
    default -> "alt număr";
     };
System.out.println(rezultat);
}}



Să aveți o zi deosebită!
❤️