1. Operatorii conditionali C#

 - Se imprat in 3 grupe

       1. De selectie: if si switch

       2. Iterativi: for, while, do-while si foreach

       3. de salt: break, continue, goto, return  si trow


2. Operatorul if

if (conditie) operator;

else operator;

EX;

//----------------------------------------------
//verifica daca numarul este pozitiv sau negativ

using System;
namespace PosNeg
{
    class Program
    {
        static void Main(string[] args)
        {
            int i;
            for (i = -5; i <= 5; i++) {
                if (i < 0) 
                    Console.WriteLine("Verificare " + i + ": Numar negativ");
                else
                    Console.WriteLine("Verificare " + i + ": Numar pozitiv");
            }
            Console.ReadKey(true);
        }
    }
}


3. Operatorul if imbricat

 - orice else este in legatira cu cel ami apropiat if (care se afla in acelas bloc)

EX;

//----------------------------------------------
//verifica daca numarul este pozitiv sau negativ sau zero

using System;
namespace PosNegZero
{
    class Program
    {
        static void Main(string[] args)
        {
            int i;
            for (i = -5; i <= 5; i++) {
                if (i < 0) 
                    Console.WriteLine("Verificare " + i + ": Numar negativ");
                else
                    if (i == 0)
                        Console.WriteLine("Verificare " + i + ": Numar fara semn");
                    else
                    Console.WriteLine("Verificare " + i + ": Numar pozitiv");
            }
            Console.ReadKey(true);
        }
    }
}


4. if-else-if

if(conditie)

        operator;

else if(conditie)

      operator;

else if(conditie)

       operator;

else

    operator;

 - Expresiile se calculeaza de sus in jos pina cind unul din ele returneaza adevrat (restul se ignora)


5. Operatorul switch

 - Permite selectia dintre mai multe alternative

Ex.

switch (expr){

    case a :    operatori; break;

    case b :    operatori; break;

default: operatori; break;

}

 - expr in operatorul switch trebuie sa fie de tip intreg (cu virgula mobila nu merge)


6. Operatorul switch imbricat

 - Constantele de selectie ale switch-ului intern si extern pot sa fienidentice(nu creaza conflict) 


7. Operatorul for

 - expresia conditionala se verifica intotdeauna la inceputul ciclului 

Ex.:

 

//verifica daca numarul este prim
// daca nu este prim, se afiseaza cel mai mare factor al numarului
using System;
namespace FindPrimes
{
    class Program
    {
        static void Main(string[] args)
        {
            int num;
            int i;
            int factor;
            bool isprime;

            for (num = 2; num < 20; num++) {
                isprime = true;
                factor = 0;

                //verifica daca valoarea variabilei se imparte la intreg
                for (i = 2; i < num / 2; i++) { //for2
                    if ((num % i) == 0) { 
                        //valoarea variabilei num se imparte la intreg
                        //prin urmare nu este prim
                        isprime = false;
                        factor = i;
                    }//sfirsit if
                }//sfirsit for 2
                    if (isprime)
                        Console.WriteLine(num + " - numar prim.");
                    else
                        Console.WriteLine("Cel mai mare factor al numarului " + num +
                            " = " + factor);
                
            }
            Console.ReadKey(true);
        }
    }
}

 - for permite diferite variante de folosire:

     1. citeva variabile de control al ciclului:

                                                               a) for( i = 0, j = 10; i < j; i++, j--)      

                                                               b) for (i = 2,  j = num / 2;  (i  <= num / 2) & (j  >= 2);  i++, j-- )

      2. expresia conditionala poate fi orce expreseie care returneaza bool:

                                                               a)  bool done = false;

                                                                        for( i = 0, j = 100; !done; i++, j--)       

                                                                             if(i * i >= j) done = true;

                                                                    (ciclul se repeta pina cind done nu devine true)

 - Din for pot lipsi careva componente : for(;;) - ciclu vesnic

 - Ciclu fara corp:     for( i = 1; i < 5; sum += i++)       //suma numerelor de la 1..5


7. Operatorul while

 - while (conditie) operator;  operator se executa atita timp cit conditie este true


8. Operatorul do-while

 -  do { operatori; } while(conditie); se executa atita cit while este adevarat

 - daca este doar un operator acoladele nu sunt necesare


9. Operatorul foreach

 -  pentru adresarea ciclica la elementele colectiei, care reprezinta o grupa de obj.


10. Operatorul break

 -  Iesire din ciclu

 - Programa continua cu urmatoarea expresie de dupa ciclu


11. Operatorul continue

 - finalizare iteratie curenta

 - trece la urmatoarea iteratie, igonrind codul ramas neexecutat

           for( i = 0; i <= 100;  i++)  if((i%2) != 0) continue; // trece la urmatorul pas al iteratiei


12. Operatorul return

 - Organizeaza intoarcere din metoda

 - intoarce valoare


12. Operatorul goto (nu se recomanda)

 - salt neconditionat

 - programele devin greu de citit

EX.

x = 1;

loop1:

       x++;

       if(x<100) goto lop1;

 - se poate de folosit in switch  (goto case n:)

 - SE POATE DE FOLOSIT DOAR IN PARTI DE PROGRAM PUTERNIC IMBRICATE