Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
// C++ für Spieleprogrammierer // Listing 3.12 // Fehlerquelltext // #include <iostream> using namespace std; // Hauptprogramm // int main () { // Variablen // int Breite, Hoehe; // Breite und Hoehe des Rechtecks abfragen // und testen, ob es sich um ungerade Werte handelt do { cout << "Breite: "; cin >> Breite; cout << "Hoehe: "; cin >> Hoehe; } while ((Breite % 2 == 0) || (Hoehe % 2 == 0)); // Rechteck zeichnen for (int i=0; i<Hoehe; i++) { for (int j=0; j<Breite; j++) { // Prüfen, ob es sich um die Mitte handelt if ((j == Breite / 2) || (i == Hoehe / 2)) cout << "-"; else cout << "X"; } cout << endl; } return 0; } |
C-/C++-Quelltext |
|
1 |
while ((Breite % 2 == 0) || (Hoehe % 2 == 0)); |
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].
C-/C++-Quelltext |
|
1 |
while ((Breite % 2 == 0) || (Hoehe % 2 == 0)); |
Community-Fossil
das "||" ist ein bitweises oder
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 |
int i = 1; if(i || ++i) { std::cout << i; // würde 1 ausgeben. } i = 1; if(i | ++i) { std::cout << i; // würde 2 ausgeben. } |
[...]
Ausserdem hört das "logische oder" auf, wenn der linke Teil true ist. Weil der gesammte Ausdruck dann sowieso true ist, egal ob der rechte Teil true oder false ist.
Community-Fossil
Dem muss ich widersprechen. Es ist ein "logisches oder". Das ist jetzt nicht klugscheisserei oder so, es ist ein wichtiger Unterschied!
Werbeanzeige