Computerhilfen.de Logo
Forum
Tipps
News

Programmierfrage

Hi Leute,
hab ein Problem beim Proggen was ich nich verstehe  ???

Also im folgenden Quelltext (Ja ders noch nich vollständig^^) rauft mich erstens die " if (spielen == "J" || "j")" Frage. Die sagt doch aus das wenn J oder j eingegeben wird die Then anweisung, wenn nich dann die Else anweisung ausgeführt wird. Bei mir is jetz aber das Problem egal was ich eingebe es wird IMMER die Then anweisung ausgeführt.
Oder bei der " while ((spielen == "J" || "j") || (summe > 21))" Schleife, egal was passiert das Porggi bleibt IMMER in der Schleife und springt nie raus.

Was is da Falsch????? Helft mir  :-X

Zitat
//---------------------------------------------------------------------------
#include <iostream>
#include <conio.h>
#include <string>
#include <stdlib.h>
#include <time.h>
#pragma hdrstop

using namespace std;

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
   string spielen;
   string name;
   int tab[12];
   int i = 0;
   int j = 0;
   int summe = 0;


   cout << "Siebzehn und Vier" << endl;
   cout << "willst du Spielen? (J oder N) ";
   cin >> spielen;

   if (spielen == "J" || "j")
      {
         cout << "Ok, wie heisst du?" << endl;
         cin >> name;

      } else {
         cout << "Dann nicht." << endl;
         getch();
         return 0;
      }

    srand( (unsigned) time(NULL) );
    for (i = 0; i < 12; i++)
      {
         tab = 2 + ( rand() % ( 11 - 2 + 1 ) );
      }

    system("cls");
    cout << "Ok, " << name << " los gehts. " << endl;

    while ((spielen == "J" || "j") || (summe > 21))
       {
          cout << j + 1 << ". Zahl: " << tab[j] << endl;
          summe = summe + tab[j];
          cout << "Nocheine Zahl? (J oder N) ";
          cin >> spielen;
          j++;
        }

   getch();
   return 0;
}
//---------------------------------------------------------------------------

Antworten zu Programmierfrage:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hi |

Deine IF-Bedingung wird einfach immer erfüllt ;D

Der Grund: "j" ist nunmal TRUE. Wenn du einen logischen Vergleichsoperator verwendest, dann bitte nicht so, wie du es in der Umgangssprache ("wenn spielen j oder J ist") formulieren würdest. Versuch mal:

if(spielen == "J" || spielen == "j")

greez 8)
JoSsiF

Wuhu  :D
cool die if frage und die while schleife funzt jetz^^

Dankööö für die hilfe :D


 


« Programmieren Lernen mit VBProgrammieren mit C++ - Übung 1 Aufgabe 2 »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!