Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

wo ist Fehler:

out<<"Wollen Sie jetz die Daten öffnen ?"<<endl;

cout<<"mit 1 ja"<<endl;

cout<<"mit 0 nein"<<endl;

cin>>janein;

while((janein == 0) && (janein == 1) ){

if(janein=1){

cout<<"Die Zahl ist 1 "<<endl;

}

if(janein=0){

cout<<"Die Zahl ist 0"<<endl;

}

}

cout<<"Sie haben falsche Zahl eingegeben"<<endl;

Egal welche Zahl ich angebe komme ich nicht rein ????

Geschrieben
Original geschrieben von 007ski

while((janein == 0) && (janein == 1) )

dieser fall tritt nie ein, da janein nicht 0 UND 1 sein kann. Wahrscheinlich meinst du "logisch oder", bzw. " || " .

achja die klammern sind auch nicht nötig, es könnte also

while(janein == 0 || janein == 1 )

heißen.

Geschrieben

Außerdem weist Du in der If-Anweisung janein den Wert 1 bzw 0 zu statt zu vergleichen

besser:


if(janein==1)

{

  cout<<"Die Zahl ist 1 "<<endl;

}

if(janein==0)

{

  cout<<"Die Zahl ist 0"<<endl;

}
oder kürzer:

if(janein==1)

	cout<<"Die Zahl ist 1 "<<endl;

else

	cout<<"Die Zahl ist 0"<<endl;

, denn es kann dann ja nur 1 oder 0 sein.

Geschrieben

Und was ist wenn der User tippt 6 ??

Wenn ich möchte den User nur auf drei angaben begrenzen ?

So kriege ich Fehler:

do{

if(janein=1){

cout<<"Die Zahl ist 1 "<<endl;

}

if(janein=0){

cout<<"Die Zahl ist 0"<<endl;

}

}while(((janein == 0 )|| (janein == 1))<4 );

Geschrieben
Original geschrieben von 007ski

Und was ist wenn der User tippt 6 ??

Wenn ich möchte den User nur auf drei angaben begrenzen ?

So kriege ich Fehler:

do{

if(janein=1){

cout<<"Die Zahl ist 1 "<<endl;

}

if(janein=0){

cout<<"Die Zahl ist 0"<<endl;

}

}while(((janein == 0 )|| (janein == 1))<4 );

Zum einen ist es wieder so, das du in den if-Abfragen janein 1 bzw. 0 zuweist, dass muss wie schon erwähnt wurde "==" sein.

dann ist die zeile

while(((janein == 0 )|| (janein == 1))<4 );

nicht in Ordnung. Denn eine Bedingung wie " ((janein == 0 )|| (janein == 1)) " kann nur wahr oder falsch sein, nicht aber kleiner vier.

hier wäre wohl

while((janein == 0 || janein == 1) && janein < 4);

richtig.

Geschrieben

Danke sub7 und Citrus-Motte,

Ihr versuch ist aber nicht ganz richtig. Wenn ich eine andere Zahl als 1 oder 0 eingebe dann der progi merkt das zwar, aber beendet auch das Programm und ich wollte den Benutzer drei versuche erlauben dh. Nach erst nach drei falschen versuchen das progi beenden

Geschrieben
Original geschrieben von 007ski

Danke sub7 und Citrus-Motte,

Ihr versuch ist aber nicht ganz richtig. Wenn ich eine andere Zahl als 1 oder 0 eingebe dann der progi merkt das zwar, aber beendet auch das Programm und ich wollte den Benutzer drei versuche erlauben dh. Nach erst nach drei falschen versuchen das progi beenden

Dazu bräuchtest du dann einen Zähler der die Fehleversuche zählt..

das müsste ungefähr so aussehen....


int iFehlZahl = 0;
.
.
.
do
{

cin>>janein;

if(janein==1)
{
iFehlZahl = 0;
cout<<"Die Zahl ist 1 "<<endl;
}
else
{
if(janein==0)
{
iFehlZahl = 0;
cout<<"Die Zahl ist 0"<<endl;
}
else
iFehlZahl++;
}

}while( janein == 0 || janein == 1 || iFehlZahl == 3);
[/PHP]

so müssts funzen...

Geschrieben

int falschezahl=0;

do

{

if(janein==1)

{

cout<<"Die Zahl ist 1 "<<endl;

}

if(janein==0)

{

cout<<"Die Zahl ist 0"<<endl;

}

if(janein!=0 && janein!=1)

{

i++;

}

}while(falschezahl < 4);

dann vielleicht so? wenn du die anzahl der falschen eingaben einbeziehen willst, musst du die auch zählen, oder versteh ich dich jetzt ganz falsch?

EDIT: zu langsam :(

Geschrieben

Hallo,

bei der Version von sub7 ist noch eine 4. falsche Eingabe möglich bevor abgebrochen wird, außerdem kommt man immernoch in die Endlosschleife.

Ich schlage außerdem vor den Fehlerzähler bei einer richtigen Eingabe wieder zurückzusetzen:


int falschezahl=1, janein;

cout<<"Wollen Sie jetz die Daten öffnen ?"<<endl;

cout<<"mit 1 ja"<<endl;

cout<<"mit 0 nein"<<endl;

do

{

  cin>>janein;

  if(janein==1)

  {

    cout<<"Die Zahl ist 1 "<<endl;

    falschezahl=1;

  }

  else if(janein==0)

  {

    cout<<"Die Zahl ist 0"<<endl;

    falschezahl=1;

  }

  else

  {

    falschezahl++;

    cout<<"Sie haben falsche Zahl eingegeben"<<endl;

  }

}while(falschezahl < 4);

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...