7. Instrukcje sterujące

7.2. Instrukcja warunkowa

Instrukcja warunkowa w języku C++ ma następującą składnię:


if (wyrażenie_warunkowe)
	// instrukcja wykonywana jeśli wyrażenie jest prawdziwe
else // else jest opcjonalne
  // instrukcja wykonywana jeśli wyrażenie nie jest prawdziwe

Nie ma obowiązku podania bloku else – co więcej, jak to widzieliście wcześniej, można też postawić instrukcję pustą w części wykonywanej jeśli wyrażenie jest prawdziwe.

To nie jedyne dopuszczalne udziwnienie w C++. Poniżej prezentujemy inny rzadziej spotykany, lecz poprawny kod:


int main()
{
  if ( int a = x + 2 > 0 )
    cout << a << endl;
  return 0;
}

Zauważcie, że w wyrażeniu będącym argumentem instrukcji if została zdefiniowana zmienna, która jest dostępna w instrukcji podporządkowanej (podobnie byłoby jeśli instrukcją podporządkowaną byłaby instrukcja złożona). W C++ jest to dopuszczalne, co więcej - jest to równoważne poniższemu zapisowi: 


int main()
{
  if ( int a = x + 2; a > 0 )
    cout << a << endl;
  return 0;
}

Ciągle nie ma to za wiele sensu, ale poniżej macie przykład kodu, który wykorzystuje tą składnię sensowniej:


int main()
{
  std::vector<double> v; 
  ...
  if (auto n=v.size())
    std::cout << "Rozmiar wektora to " << n << std::endl;
  else
    std::cout << "Wektor jest pusty\n"
  ...
}