true/false
-
Hm....... ich habe ein Verständnis Problem
Es gibt eine Funktion:ostream &write(long l, ostream &ost, bool opt=true) { if(l == 0 && opt) { return ost; } ost << (l /100l); ost << ','; ost << setfill('0') << setw(2) << (l % 100); return ost; }
jetzt wenn ich die so aufrufe
write(0, ost, false);
sollte ich in if rein rutschen ist aber nicht der fall.
Ich weis es ist auch richtig so jedoch kann ich es nicht so richtig verstehen.
Wer kann es mir erklären ?
-
Wahrheitstabelle von && (logisches UND):
true && true => true
true && false => false
false && true => false
false && false => falseHTH
-
[cpp]
ostream &write(long l, ostream &ost, bool opt=true) {
if(l == 0 && **!**opt) {
return ost;
}
ost << (l /100l);
ost << ',';
ost << setfill('0') << setw(2) << (l % 100);
return ost;
}
[/cpp]jetzt stimmt es
-
Bashar schrieb:
Wahrheitstabelle von && (logisches UND):
true && true => true
true && false => false
false && true => false
false && false => falseHTH
das ist mir schon klar
-
miller_m schrieb:
[cpp]
ostream &write(long l, ostream &ost, bool opt=true) {
if(l == 0 && **!**opt) {
return ost;
}
ost << (l /100l);
ost << ',';
ost << setfill('0') << setw(2) << (l % 100);
return ost;
}
[/cpp]jetzt stimmt es
eben so sollte es auch sein ( meine meinug nach )
es funk aber auch soif(l == 0 && opt) { return ost; }
und mein Projektleiter hat gesagt es ist auch richtig und wenn ich es nicht versthe dann empfelt er mir ein c++ buch, und ich verstehe es nicht und im c++ buch habe auch nichts drüber gefunden ?!!?
-
wie wärs mit einfach fragen, ob opt true ist?
if(l == 0 && opt==true) { return ost; }
funktionierts dann auch nicht?
florian
-
thaflo schrieb:
funktionierts dann auch nicht?
floriandas "Problem" ist das es so und so funktioniert ich aber die erste lösung ( sehe oben ) nich verstehe
-
007ski schrieb:
das ist mir schon klar
Dann verstehe ich nicht, was dein Problem damit ist, dass l == 0 && opt nur dann true ergibt, wenn l 0 und opt true ist. Linke Seite: l == 0 ergibt true. Rechte Seite ist aber false. true && false ist false, also wird die vom if kontrollierte Anweisung nicht ausgeführt.
-
soooooooooory ich bin einfach ein Depp
ich habe statt
if(l == 0 && opt)if(l == 0 && ost)
gesehen sooooory und danke für die mühe
-
thaflo schrieb:
wie wärs mit einfach fragen, ob opt true ist?
Lieber nicht. Wenn man dann mal mit BOOLs, ints oder sonstigem arbeitet, gibt's lustige Fehler.