Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » kompiler meldet bei schleife fehler

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
19.04.2004, 17:03 Uhr
~oundo
Gast


ich hab ein problem mit ner schleife:


C++:
#include <iostream>
#include <stdlib.h>
#include <conio.h>

using namespace std;

int main()
{
    int x, px, q;
    cout<<"Geben sie für x^2+px+q nacheinander x, px und q ein"<<endl;
    do{back:
    cin>>x;
    if(x>1)
        goto back;
    }
}//==>hier wird der fehler angezeigt!


und der kompiler meldet:

error C2059: Syntaxfehler : '}'

ich habe visual c++ .net

Bearbeitung von Pablo:

CPP TAGS SELBER BENUTZEN


Dieser Post wurde am 19.04.2004 um 17:29 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.04.2004, 17:15 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


das ist mal wieder ein typischer fall wo man goto nicht benutzen sollte

entweder

C++:
x=5;//oder was auch immer hopsa grösser 1 damit die schleife durchlaufen wird
while(x>1){
cin>>x;
.
.
.
}



oder


C++:
do{
cin>>x;
.
.
}while(x>1);



--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 19.04.2004 um 17:15 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.04.2004, 17:19 Uhr
~slas-ex oundo
Gast


weiß jemand warum das so ist?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.04.2004, 17:21 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


weil der hinter deinem block den du mit do begonnen hast eine bedingung erwartet...
zu ner do-while schleife gehört halt immer auch das while deswegen heisst die ja auch so...

wenn du es unbedingt mit goto machen willst lass die schleife weg, denn die willst du ja gerade durch einen bedingten sprung ersetzen
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 19.04.2004 um 17:21 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
19.04.2004, 17:30 Uhr
Pablo
Supertux
(Operator)



Zitat:
~slas-ex oundo postete
weiß jemand warum das so ist?


weil das so ist, so ist es in der C++ Grammatik definiert ist.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.04.2004, 17:36 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

weil das so ist, so ist es in der C++ Grammatik definiert ist.


öhm Pablo du hast gerade mehr oder weniger auf die Frage :"Was für einen Syntaxfehler habe ich gemacht"? mit "Du hast einen Syntaxfehler gemacht" geantwortet.

Soweit war er glaub ich schon
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
19.04.2004, 20:20 Uhr
~oundo
Gast


jetzt ist nur das problem, dass wenn ich das programm ausführe


C++:
#include <iostream>
#include <stdlib.h>
#include <conio.h>

using namespace std;

int main()
{
    int x, px, q;
    cout<<"Geben sie für x^2+px+q nacheinander x, px und q ein"<<endl;
    do{back:
    cin>>x;
    if(x==1)  //hier
        goto back;
    }
}



die schleife nach jeder eingabe wiederholt wird und ich keine anderen variablen eingeben kann.

Bearbeitung von Pablo:

bitte, CPP Tags selber benutzen


Dieser Post wurde am 19.04.2004 um 21:46 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
19.04.2004, 20:21 Uhr
~oundo
Gast


darum habe ich es mit goto probiert
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
19.04.2004, 21:01 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


also das hier funzt bei mir wunderbar?

C++:
int x=2;
while(x>1)cin>>x;




C++:
back:
cin>>x;
if(x>1)goto back;


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
19.04.2004, 21:49 Uhr
Pablo
Supertux
(Operator)



Zitat:
Windalf postete
[quote]
weil das so ist, so ist es in der C++ Grammatik definiert ist.


öhm Pablo du hast gerade mehr oder weniger auf die Frage :"Was für einen Syntaxfehler habe ich gemacht"? mit "Du hast einen Syntaxfehler gemacht" geantwortet.

Soweit war er glaub ich schon[/quote]

Ist mir nix bessere eingefallen. Es ist als würde man fragen: wieso soll ich das = Zeichen benutzen, wenn ich einen Wert zuweisen will? Was willst du denn da antworten? Weil die Grammtik sich so ausgedacht hat und dagegen kannst du nichts. Und hier ging's ums dasselbe, die Grammtik sagt do { ... } while(Bedingung) und wenn du es so nicht machst, dann meckert der Compiler. Da kann man nicht so groß erklären, außer zu sagen, dass es so ist.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 19.04.2004 um 21:50 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: