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