Warum funktioniert mein Code nicht?
-
Kürzer:
int summieren() { int sum = 0; int zahl = 0; do { sum += zahl; std::cout << "Zahl: "; std::cin >> zahl; } while(zahl > 0); return sum; }
-
Ich vermute mal dir liegt daran deinen eigenen Ansatz zum Laufen zu bringen, daher will ich noch auf den Fehler in der while Bedingung hinweisen.
while(loopCount = 0)soll wohl
while(loopCount == 0)heißen
-
Habe meinen Code jetzt so verändert:
#include <iostream> #include <cstdio> #include <cstdlib> using namespace std; int value; int summe; int summieren() { int loopCount; loopCount = 0; while(loopCount = 0) { cout << "Zahl eingeben:" << endl; cin >> value; if (value < 0) { break; } else { summe = summe + value; continue; } } return summe; } int main() { int summe = summieren(); cout << "Die Summe betraegt:" << endl; cout << summe; return 0; }Läuft aber immer noch nicht
Kann das jemand anhand meines Codes erklären??
-
Siehe hmpfs Beitrag. Du vergleichst loopCount nicht mit 0, sondern weist loopCount 0 zu!
-
Ließt du nicht was andere schreiben?
while( loopCount = 0 )ist eine Zuweisung und ergibt immer true....
du meinstwhile( loopCount == 0 )Lg freeG
EDIT:
Wieso nimmst du eigentlich globale Variablen?
Und wieso machst nicht einfachwhile( true ), sondern mit dem loopCount das du eh nie änderst? Du beendest die Schleife ja nur durch break.
Und das continue ist auch unnötig;)
-
fr33g schrieb:
Ließt du nicht was andere schreiben?
while( loopCount = 0 )ist eine Zuweisung und ergibt immer
truefalse....
-
Der Zuweisungsoperator gibt eine Referenz auf das geänderte Objekt zurück.
EDIT: Zu langsam.
-
EOutOfResources schrieb:
Der Zuweisungsoperator gibt eine Referenz auf das geänderte Objekt zurück.
Und was will das jetzt aussagen? Die geänderte Variable wurde auf 0 gesetzt - und 0 gilt in der Logik von C++ als
falseund alle anderen Werte alstrue.
-
CStoll schrieb:
Und was will das jetzt aussagen?
fr33g schrieb:
while( loopCount = 0 )ist eine Zuweisung und ergibt immer true....

-
drakon schrieb:
fr33g schrieb:
Ließt du nicht was andere schreiben?
while( loopCount = 0 )ist eine Zuweisung und ergibt immer
truefalse....Jap sorry mein Fehler, ergibt immer true außer wenn die 0 zugewiesen wird wie in diesem Fall

EOutOfResources schrieb:
CStoll schrieb:
Und was will das jetzt aussagen?
fr33g schrieb:
while( loopCount = 0 )ist eine Zuweisung und ergibt immer true....

Und was soll das? Es hat mich doch drakon schon drauf aufmerksam gemacht, das reicht wie ich finde. Ist total unnötig

Lg freeG
-
fr33g schrieb:
Und was soll das? Es hat mich doch drakon schon drauf aufmerksam gemacht, das reicht wie ich finde. Ist total unnötig

Ich habe seinen Post noch nicht gesehen als ich auf "Auf Beitrag antworten" geklickt habe.
-
Habs hier mal gebastelt: http://ideone.com/SJnx8
-
EOutOfResources schrieb:
fr33g schrieb:
Und was soll das? Es hat mich doch drakon schon drauf aufmerksam gemacht, das reicht wie ich finde. Ist total unnötig

Ich habe seinen Post noch nicht gesehen als ich auf "Auf Beitrag antworten" geklickt habe.
Ok sorry, dass wusste ich natürlich nicht

Lg freeG