Cum funcționează operatorul condiționat

O diagramă bloc a instrucțiunii if..else este prezentată în Fig. 3.2.

Cum funcționează operatorul condiționat

Fig. 3.2. Executarea instrucțiunii if..else

În corpul operatorului ales, dacă există un singur operator. Pentru a include mai mulți operatori în organism, trebuie să includeți acest set de instrucțiuni în paranteze curbate (<и>). Un set de instrucțiuni conținute într-o pereche de bretele se numește un operator compozit sau bloc. Un operator compozit poate fi plasat oriunde în program, unde un operator simplu poate sta.







Următorul exemplu conține o instrucțiune compusă în altă ramură a instrucțiunii if..else.

dacă (grad> 60)

cout <<“Зачет”;

cout <<“Незачет”;

cout <<“Вам следует снова пройти этот курс”;

Observă legăturile în care ambii operatori sunt închise în clauza else. Aceste paranteze sunt importante. Fără aceste paranteze, operatorul

cout <<“Вам следует снова пройти этот курс”;

ar fi în afara corpului e-branch-ului declarației if și ar fi executat indiferent dacă gradul este mai mic de 60 sau nu.

Operator de comutare cu mai multe opțiuni

În unele situații, utilizarea instrucțiunii if poate duce la apariția unor structuri foarte complexe, cu un număr mare de operatori imbricați. C ++ are o soluție alternativă la această problemă - instrucțiunea switch. Spre deosebire de instrucțiunea if, vă permite să verificați mai multe condiții simultan, organizând ramificația programului mai eficient. Instrumentul comutator are următoarea sintaxă:

valoarea cazului1: operator; pauză;

caz2: operator; pauză;

valoare operatorN: operator; pauză;
implicit: operator;

Expresia în paranteze a instrucțiunii switch este orice expresie validă a limbajului C ++, iar operatorul este orice operator sau bloc de operatori valabili. Expresia returnează (sau poate fi convertită în mod unic) o valoare întregă. Prin urmare, utilizarea operațiilor logice sau a expresiilor de comparație nu este permisă aici.

Tranziția este făcută la acea linie a instrucțiunii switch, unde după cuvântul cheie al cazului există o valoare corespunzătoare rezultatului expresiei. Din această linie, executarea instrucțiunilor va continua până când instrucțiunea de comutare va termina sau până când se va întâlni instrucțiunea de pauză. Dacă nici o valoare a cazului nu se potrivește cu rezultatul expresiei, se execută instrucțiunile urmând cuvântul cheie implicit, iar în absența cazului, instrucțiunea de comutare se termină. O diagramă bloc a instrucțiunii if..else este prezentată în Fig. 3.3.

Cum funcționează operatorul condiționat

Fig. 3.3. Executarea instrucțiunii if..else

Un exemplu de utilizare a instrucțiunii switch este prezentat în lista 3.3.

Listing 3.3. Un exemplu de utilizare a instrucțiunii switch

// DemoSwitch.cpp. Definește punctul de intrare pentru aplicația consolei.

folosind namespace std;

cout <<"Enter a number between 1 and 5. ";

cin >> numărul;

cazul 5: cout <<"Good job! " <

cazul 4: cout <<"Nice Pick! " <

cazul 3: cout <<"Exellent! " <

cazul 2: cout <<"Masterful! " <

cazul 1: cout <<"Incredible!" <

implicit: cout <<"Too large! "; break;

cout <

cin >> numărul;

Operatorul buclă în timp

Cu ajutorul acestui operator, se execută o buclă, care rulează atâta timp cât condiția buclă este adevărată. Sintaxa acestui operator este:

Dăm un exemplu de implementare a acestui ciclu, în care se face sumarea elementelor seriei S = 0 + 1 + 2 + 3. în timp ce S

În acest exemplu, se execută o buclă în timp cu condiția i

în timp ce ((S = S + i ++)





printf ("Ați introdus o valoare. \ n", num);

> Această buclă va funcționa atâta timp cât utilizatorul introduce valori întregi și se oprește dacă este introdusă o literă sau un număr real. Trebuie remarcat faptul că în timp ce bucla poate fi forțată să se termine chiar și cu adevărata stare a buclei. Acest lucru este realizat prin utilizarea instrucțiunii de pauză. Respingem exemplul anterior, astfel încât bucla să se termine dacă utilizatorul introduce 0.

> Buclele se termină imediat după utilizarea instrucțiunii de pauză, adică. În exemplul de mai sus, atunci când tastați din scratchpad, funcția printf () nu va fi executată, iar programul va merge la următoarea instrucțiune după ce a făcut-o. Același rezultat poate fi obținut dacă utilizați o condiție compusă într-un ciclu:

în timp ce (scanf (".", mun) == 1 num! = 0)

printf ("Ați introdus o valoare. \ n", num);

Această construcție funcționează după cum urmează.

1. Verificați mai întâi starea în paranteze.
1.1 Dacă este adevărat, atunci corpul bucla este executat. (Operator). Și programul revine la verificarea stării.
Permiteți-mi să vă reamintesc că corpul bucla este întotdeauna compus dintr-un singur operator. Și dacă trebuie să folosim mai mulți operatori, atunci ca și în cazul if-else sau pentru buclă, se folosește o instrucțiune compusă.
1.2 Dacă condiția este falsă, executarea construcției ciclice este terminată și programul este executat în continuare.

Astfel, ca o condiție, aceleași construcții ca și în declarația if sunt posibile.

O matrice multidimensională este o matrice care are mai multe dimensiuni.

Fiecare dimensiune este alocată cu o pereche separată de paranteze pătrate și se caracterizează prin propriul interval sau dimensiune (număr de elemente):

Descriere band-2]. [descrierea gamei-N];

Matricea este o matrice cu două dimensiuni (bidimensionale).

Matricea este de fapt o tabelă bidimensională, prima dimensiune a căreia este considerată, de exemplu, un rând, iar cea de-a doua - o coloană.

dublu mtx [10] [20];

Specifică un tabel cu dimensiunea elementelor de 10x20 (valori fracționare).

Când accesați un element dintr-o matrice multidimensională, valorile indexului sunt listate în paranteze pătrate - fiecare index din paranteze. De exemplu:

dublu mtx [10] [20];

Creșterea și scăderea.

Operatorul de increment ++ se adaugă la operand 1, iar operatorul decrement scade 1. Astfel,

x = x + 1; este echivalent cu x ++;

și x = x-1; este echivalent cu x -;

Ambii operatori, atât increment, cât și decrement, pot preceda operandul (prefixul) și pot urma operandul (postfix). De exemplu,

x = x + 1, poate fi de asemenea scris ca

++x; // prefix și cum

x ++; // forma postfix

În acest exemplu, nu contează dacă incrementul este folosit ca prefix sau ca postfix. Totuși, dacă creșterile sau decrementările sunt folosite ca parte a unei expresii mai mari, apare o diferență importantă. Dacă operatorul de incrementare sau de decrementare precede operandul, C ++ efectuează operația până când valoarea operatorului este obținută pentru ao folosi în restul expresiei. Dacă operatorul urmează operandul, C ++ primește valoarea operandului și apoi execută incrementul sau decrementul. Luați în considerare acest exemplu:

În acest caz, y va primi valoarea 11. Cu toate acestea, dacă scrieți aceste rânduri diferit:

y = x ++, valoarea y este 10. În ambele cazuri, valoarea finală a lui x este 11; Diferența este atunci când se întâmplă acest lucru.

Următorul program demonstrează utilizarea operatorilor de incrementare și decrementare:

Listing 3.1. Un exemplu de utilizare a operatorilor de incrementare și decrementare

// IncrAndDecr.cpp. Definește punctul de intrare pentru aplicația consolei.

// Codul programului cu operatorii de incrementare și decrementare

folosind namespace std;

cout <<"At the beginning: \n" ;

cout <<"i = " <

cout <<"j = " <

cout <<"After command n=i++ :\n";

n = i ++; // Acum n = 3 și i = 4

cout <<"n = " <

cout <<"i = " <

cout <<" After command m=++j :\n";

m = ++ j; // Valoarea variabilelor m = 4 și j = 4

cout <<"m = " <

cout <<"j = " <

cout <<" After command n= (--i)*(i--) :\n";

n = (- i) * (i -); // Acum n = 9 și i = 2

cout <<"n = " <

cout <<"i = " <

cout <<" After command m=(--j)*(--j) :\n";

m = (- j) * (- j); // Acum m = 4 și j = 2

cout <<"m = " <

cout <<"j = " <

cout <<" After command n= (--i) * (i++) :\n";

n = (- i) * (i ++); // Acum n = 1 și i = 2

cout <<"n = " <

cout <<"i = " <

cout <<" After command m= (j--) * ( ++j ) :\n" ;

m = (j -) * (++ j); // Acum m = 9 și j = 2

cout <<"m = " <

cout <<"j = " <

cout <<" After command n= ( --i) * (++i) :\n";

n = (- i) * (++ i); // Acum n = 4 și i = 2

cout <<"n = " <

cout <<"i = " <

T # 1201; ra # 1179; tylar zariyalau sintaxa aynymalilar zhariyala sintaxa # 1201; # 1179; saas, ayrmashyly # 1 "s const cu # 1257;

Simboluri # 1179; constanta 2 birrik tyrna # 1179; shans # 1 "zasylsyna zhazilada 'a' Zholdy # 1179; t # 1201; pa # 1179; tu 2 # 1179; este răcoroasă # 1 "arasyn jazilada" a "# 1119; tylar: 1) Literal # 1179;

2) atal # 1 "en bolep # 1257; linedi.

Constantele sunt celule de memorie în care sunt stocate date. Există mai multe tipuri de constante. Mai jos este un scurt rezumat al caracteristicilor hardware care le afectează dimensiunile. Astfel, spre deosebire de variabile, constantele nu se schimbă. Constanta creată trebuie inițializată, deoarece nu poate fi atribuită o nouă valoare. Există două tipuri de constante în limba C ++: literală și simbolică.

O constantă literală este o valoare care este introdusă direct în programul propriu-zis. Intcoder = 14;

Coderul variabil este de tip int, iar numărul 14 este o constantă literală.

O constantă intregă constând dintr-o secvență de cifre este considerată octală dacă începe cu 0 (cifre zero), iar zecimal altfel. Figurile 8 și 9 nu sunt cifre octale.

Secvența de cifre precedată de 0x sau 0x este tratată ca un întreg hexazecimal.

Elementele hexazecimale includ literele de la a sau A la f sau F, care au valori de la 10 la 15.

O constantă zecimală a cărei valoare depășește cel mai mare număr de mașină semnat este considerată lungă; octal și hexazecimal, a căror valoare depășește cel mai mare număr întreg de mașină cu un semn, este considerată lungă; în alte cazuri, constantele întregi sunt considerate int.

Constante lungi definite clar

O constantă zecimal, octal sau hexazecimal urmată imediat de l (litera latină "el") sau L, este considerată o constantă lungă.







Articole similare

Trimiteți-le prietenilor: