Ce face bool, true, false
bool ține răspunsul la o întrebare de tip da/nu: „este utilizatorul autentificat?”, „mai e stoc?”. Valorile sunt cuvintele cheie true și false. Comparațiile (<, ==, !=) și operatorii logici (&&, ||, !) dau un bool.
Un bool se transformă în număr ca 1 (true) sau 0 (false). Invers, orice număr diferit de 0 devine true, iar 0 devine false; un pointer nenul devine true.
std::println afișează true/false, dar std::cout afișează 1/0, dacă nu folosești std::boolalpha.
Exemple
Exemplul 1: Condiții salvate în variabile bool
#include <print>
int main() {
int varsta = 19;
bool major = varsta >= 18;
bool are_permis = false;
std::println("Major: {}", major);
std::println("Poate conduce: {}", major && are_permis);
std::println("Nu are permis: {}", !are_permis);
}
Rezultat
Major: true
Poate conduce: false
Nu are permis: true
Exemplul 2: bool ca număr și numere ca bool
#include <print>
int main() {
std::println("true + true = {}", true + true);
bool din_numar = static_cast<bool>(42);
bool din_zero = static_cast<bool>(0);
std::println("42 -> {}, 0 -> {}", din_numar, din_zero);
int stoc = 3;
if (stoc) {
std::println("Mai avem produse în stoc");
}
}
Rezultat
true + true = 2
42 -> true, 0 -> false
Mai avem produse în stoc
Exemplul 3: cout afișează 1 și 0
Cu std::cout, un bool apare ca număr până când activezi std::boolalpha.
#include <iostream>
int main() {
bool platit = true;
std::cout << "Plătit: " << platit << '\n';
std::cout << std::boolalpha << "Plătit: " << platit << '\n';
}
Rezultat
Plătit: 1
Plătit: true
Greșeli frecvente
- Scrii
if (x = 5)în loc deif (x == 5). Atribuirea dă 5, adicătrue, deci condiția e mereu adevărată. Compilatoarele avertizează; citește avertismentele. - Compari cu
true:if (gata == true). Merge, dar este redundant; scrieif (gata)șiif (!gata).
Comenzi înrudite
if, else: Execută un bloc de cod doar dacă o condiție este adevărată; else oferă varianta pentru cazul contrar.and, or, not și ceilalți operatori alternativi: Cuvinte care pot înlocui simbolurile unor operatori: and pentru &&, or pentru ||, not pentru !, bitand pentru & și altele.int: Tipul de bază pentru numere întregi (fără zecimale), de obicei pe 4 octeți, cu valori între aproximativ -2,1 și 2,1 miliarde.while: Repetă un bloc de cod cât timp condiția este adevărată; condiția este verificată înainte de fiecare trecere.std::boolalpha: Afișează și citește valorile bool ca true/false în loc de 1/0.