Bonjour !
Je viens de faire l’exercice XOR en C++ (chapitre sur les conditions) et voilà la solution que j’ai trouvé :
#include <iostream>
#include <locale>
void entree_securisee(); // For secured entry TP
int main() {
setlocale(LC_ALL, ""); // Handle accents
std::cout << std::boolalpha; // Make bool appear as true/false instead of 0/1
// Variables
bool a{ true };
bool b{ true };
bool x{};
// XOR
if (a != b) {
x = true;
}
else {
x = false;
}
std::cout << x << std::endl; // Print final result
return 0;
}
Or, la solution donnée dans le cours est celle-ci :
#include <iostream>
int main()
{
std::cout << std::boolalpha;
bool const deux_false { (false && !false) || (false && !false) };
std::cout << "(false && !false) || (false && !false) == " << deux_false << std::endl;
bool const true_false { (true && !false) || (false && !true) };
std::cout << "(true && !false) || (false && !true) == " << true_false << std::endl;
bool const false_true { (false && !true) || (true && !false) };
std::cout << "(false && !true) || (true && !false) == " << false_true << std::endl;
bool const deux_true { (true && !true) || (true && !true) };
std::cout << "(true && !true) || (true && !true) == " << deux_true << std::endl;
return 0;
}
Je me demande donc laquelle des deux est meilleure, étant donné que je trouve la mienne plus simple/lisible mais que j’imagine qu’il y a une raison d’avoir donné une solution plus complexe dans le cours.
+0
-0