Jump to content

[C++] Sintaxa if si expresii


MAMRETRAS
 Share

Recommended Posts

"If" se foloseste atunci cand doresti sa executi o instructiune / un set de instrcutiuni doar atunci cand se indeplineste o conditie!

Exemplu:

if (conditie) instructiune;

conditie = expresia ce va fi executata de program pentru a afla daca e adevarata sau nu

Daca dorim sa utilizam mai multe instructiuni, va trebui sa ne folosim de { } pentru a stii unde incepe "if" si unde se termina:

if (conditie) {
instructiune1;
instructiune2;
}

Exemplu de conditii:

x == 10 // expresia are valoarea 1 cand x e 10, 0 in caz contrar
y == 44 && x == 54 // expresia are valoarea 1 cand y e 44 si x 54, 0 in caz contrar
nume == "Vlad" // expresia are valoarea 1 daca numele e Vlad, 0 in caz contrar
prenume != "Grigore" // expresia are valoarea 1 daca prenumele NU e Grigore

Conditii ample:

&& - "si"
|| - "sau"
! - "nu"
== - "egalitate"
!= - "inegalitate"

x == 44 && y == 24 // verifica daca x e 44 si in acelasi timp y e 24, exemple de valori oferite:

x = 44; y = 24;
int expresie = (x == 44 && y == 24); cout << expresie; // va afisa 1 deoarece numerele sunt exact cum trebuiesc sa fie

x = 44; y = 22;
int expresie = (x == 44 && y == 24); cout << expresie; // va afisa 0; cu toate ca x este 44, ceea ce e adevarat, y nu este 24, este 22 iar conditia noastra e x = 44 "SI" y = 24, ceea ce e fals deoarece y e 22;

x = 13; y = 15;
int expresie = (x == 44 && y == 24); cout << expesie; // va afisa 0; unul dintre numere sau ambele nu e ce vrem noi

nume == "Ionescu" || prenume == "Ion" // verifica daca numele este Ionescu sau prenumele este Ion
  
nume = "Ionescu"; prenume = "Ion";
int expresie = (nume == "Ionescu" || prenume == "Ion"); cout << expresie; // va afisa 1 deoareec numele e Ionescu sau prenumele e Ion, deci e ceea ce vrem

nume = "Vasilescu"; prenume = "Ion";
int expresie = (nume == "Ionescu" || prenume == "Ion"); cout << expresie; // va afisa 1; cu toate ca numele nu este Ionescu, prenumele este Ion, deci e ceea ce vrem deoarece am cautat un om cu numele Ionescu sau prenumele Ion si l-am gasit

nume = "Vasilescu"; prenume = "Vasile";
int expresie = (nume == "Vasilescu" || prenume == "Vasile"); cout << expresie; // va afisa 0 deoarece nu are nici macar unul dintre campuri ceea ce vrem noi

x = 5;
int expresie = !(x == 4); cout << expresie; // aici negam rezultatul expresiei "x == 4", s-ar citi "Nu e x egal cu 4" ceea ce e adevarat, deoarece x = 5 si va afisa 1

x = 4;
int expresie = (x != 4); cout << expresie; // aici intrebam daca e diferit de 4 "x e diferit de 4", ceea ce e fals, deci va afisa 0

Un mic programel ar fi:

#include <iostream>
#include <string>

using namespace std;
  
int main () {
  string nume, prenume;
  cout << "Nume: "; cin >> nume;
  cout << "Prenume: "; cin >> prenume;
  if (nume == "Ficut" && prenume == "Marius")
    cout << "Tu esti maestre, avem de discutat, suna-ma la numarul de telefon 07n-am cartela";
  return 0;
}

De asemenea, "if" vine cu o ramura auxiliara si optionala numita "else", ramura care este executata de program daca expresia din "if" are valoarea 0, asadar, putem extinde programul de mai sus pentru a afisa un mesaj in caz ca nu e omul pe care-l cautam cel care a pornit programul dupa cum urmeaza:

  if (nume == "Ficut" && prenume == "Marius")
    cout << "Tu esti maestre, avem de discutat, suna-ma la numarul de telefon 07n-am cartela";
  else cout << "Batrane, nu pe tine te doream. Nu-ti pot oferi informatia";

Un exemplu mai amplu cu if e urmatorul:

  if (x == 14 && y = 15)
    cout << "Ambele valori sunt exacte"; // cazul in care si x si y sunt 14, respectiv 15
  else if (x == 14 || y == 15)
    cout << "Niciuna dintre valori nu sunt exacte"; // cand x nu e 14 si y nu e 15
  else { // daca nu sunt ambele corecte, dar nici ambele gresite, atunci sigur una e corecta si una gresita *LOGICA VIETII*
    // aici executam mai multe instructiuni, deci toate vor fi intre "else {" si "}"
    cout << "Una dintre valori e exacta" << endl;
    if (x == 14)
      cout << "Aceasta este x";
    else cout << "Aceasta este y"; // nu mai verificam daca Y e ceea exacta deoarece stiim ca este una care nu e X
  }

 

Edited by eB Teodor
Link to comment
Share on other sites

Multumesc chiar am sa ma folosesc de cateva lucruri cand o sa incep liceul, mai sunt vreo 2 luni dar putin repetat nu strica. Sper ca pe viitor sa mai apara si alt fel de tutoriale sa le zic asa.

Link to comment
Share on other sites

On 28.07.2017 at 0:08 AM, ByZhyADV said:

+1 Multumim.

Incearca ca pe viitor cand postezi undeva sa ai mai mult de doua cuvinte ...

Chestiile de aici sunt destul de simple. Daca aveti vreo nelamurire sau ceva, PM unui programator.

Topic closed.

Link to comment
Share on other sites

  • Cdorsu locked this topic
Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.