goto problem
-
Egal welche Zahl ich auch drücke der geht immer nach test: hin
aber der soll da nur hin gehen wenn ich die 1 drücke was mache ich da falsch ?#include <iostream> using namespace std; int main () { int zahl,test; cout<<"geben sie eine zahl ein: \n"; cin>>zahl; if (zahl==1) { goto test; } test: { cout<<"funktioniert\n"; } system("PAUSE"); }
-
Wo soll er denn sonst landen? Wenn zahl ungleich 1 ist, überspringt das Programm den Block mit dem goto - und landet in der nächsten Zeile/Anweisung dahinter (und das ist die, die auch als Ziel des goto dient).
PS: goto ist böse - wenn es geht, solltest du es vermeiden. (btw, was soll das eigentlich ergeben?)
-
Um Deinen kleinen Test tu berichtigen...
#include <iostream> using namespace std; int main () { int zahl,test; cout<<"geben sie eine zahl ein: \n"; cin>>zahl; if (zahl==1) { goto test; } else { goto end; } test: { cout<<"funktioniert\n"; } end: system("PAUSE"); }
-
Das wird ja immer gruseliger...
Wenn dann bitte gleich richtig (ohne goto):
#include <iostream> using namespace std; void zahl_richtig() { cout << "funktioniert" << endl; } int main () { int zahl; // 'int test' wird hier nirgens verwendet! cout << "geben sie eine zahl ein: " << endl; cin >> zahl; if (zahl==1) zahl_richtig(); // Wenn es schon unbedingt sein muss, dass die Konsole blockiert // dann les dir mal das Konsolen-FAQ durch und vermeide 'System' }
-
Geht sogar noch ohne Methode:
#include <iostream> int main () { int zahl = 0; std::cout << "geben sie eine zahl ein: \n"; cin >> zahl; if(zahl == 1) { std::cout << "funktioniert\n"; } //Programm anhalten... siehe Post von bwbg }:xmas1: