Programm will nicht beenden

BlinkSkater

Grünschnabel
Hallo erstmal,
ich hab ein kleines Problem (mit den einfachsten Befehlen überhaupt aber was solls):
also ich hab nur ein kleines Programm zum Ausprobieren vom Zufallsgenerator geschrieben und damit man es neu starten kann am Ende das hier geschrieben:
cin >> entsch;
if(entsch = 1)
{
continue;
}
else
{
break;
}

aber egal welche Zahl ich eingebe, das Programm starten immer neu.
Also wo liegt das Problem?
 
vieleicht statt
Code:
if(entsch = 1)

das hier abfragen
Code:
if(entsch == 1)

probier es mal aus, bin mir nicht 100% sicher ^^
 
dass sitmmt schon aber meineswissens müste das programm dann bei einer eingabe von "0" trotzdem beenden.

ich glaube dass sich dieser continue bzw. break nur auf den aktuellen stukturblok "{}" bezieht und nur diesen abbricht. ( gestehe das ist auch in gewisser weise unlogisch)

aber es ist wahrscheinlich am besten wenn du das ganze programm in eine do-while schleife paktst und damit beendest. Oder das gesamte programm mit "exit"
beendest
 
wie wäre es mit

return 0;

anstatt break, wie du schon gesagt hast, bricht break ja nur den strukturblock aus
nicht das Programm.
 
moin


wasle hat gesagt.:
dass sitmmt schon aber meineswissens müste das programm dann bei einer eingabe von "0" trotzdem beenden.

Nein das ist falsch.
Durch das = bekommt entsch wieder die eins zugewiesen, und ist somit wieder war.


Eine Funktion vom Typ int, long, bool, ... oder das sollte man immer mit einem return beenden. Eine Funktion vom Typ void kann man jederzeit mit return; beenden.


mfg
umbrasaxum
 
moin


Das Problem ist: Wenn du überprüfst ob (variable = wert) gleich wahr ist, wird in deinem Beispiel immer wahr rauskommen. Du bekommst nur dann false raus, wenn die Zuweisung nicht geklappt hat.

Falsch.
Bei nur einem = wird erst die Zuweisung gemacht und dann wird überprüft ob die Variable war ist. Bei if(entsch = 0) würde die Zuweisung auch funktionieren, trotzdem wird es durch die 0 zu einem false kommen.


mfg
umbrasaxum
 
Zuletzt bearbeitet:
moin


Glaub es oder nciht, hab aber Recht.


Code:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main ()
{
    int x, eingabe;

	if(x = 0)
		printf("HHH");

	printf("Variable ist %d", x);

	getch();

    return 0;
}


mfg
umbrasaxum
 
Tatsache! Jetzt bin ich geschockt...
Naja, solche IF-Abfragen kommen eh selten vor.

Umbra, muss jedes deiner Postings eigentlich mit "moin" anfangen und "mfg umbrasaxum" aufhören?
 

Neue Beiträge

Zurück