for (bool x = false; x != true; x = !x)
for (bool y = false; y != true; y = !y)
std::cout << (x || y) << ’ ’;
Problem + Frage: Bei einem Online Compiler compilt dieses gar nicht,
Kann jemand helfen ?
Meine Idee:Es geht in eine Schleife,
die bool variabel
x=false ist in der ersten for-Schleife deklariert und initialisiert.
die Bedingung
x!=true ist wahr, also wird die Schleife ausgeführt.
"Wird ausgeführt.." bedeutet,
es fängt sofort eine neue Schleife an.
Darin (also in der inneren Schleife) wird die neue Variabel
y=false deklariert und initialisiert.
Auch die Bedingung schafft
y denn sie ist ungleich 1. also geht es somit in die dritte Zeile.
Der Output meiner Meinung: Sofern ich mich korrekt erinnere, ist ( 0 || 0) genau dann wahr, wenn beide variablen den gleichen Wahrheitswert haben.
Also ist der Output
1Und jetzt greifen die Anweisungen aus den for Schleifen: 1. Zuerst greift y = !y : Aktuell ist
y = false . Jetzt greift aber die Anweisung dass
nichtfalse = wahr = y ist. Wir kriegen also
y = true. 2. Zweitens greift x = !x. Aktuell ist
x = false. Jetzt sagt aber die neue Anweisung das
nichtfalse = wahr = x ist. Wir kriegen also
x = true. 3. Und jetzt gehts wieder in die obeste Schleife. Dort wird die Schleife gar nicht ausgeführt
da x = true und die Bedingung für den Eintrirtt verletzt. Somit wird auch die
zweite Schleife übersprungen und somit auch die Anweisung in der dritten Zeile
und das Programm endet.
4. Der Output insgesamt: true.