Forum
Tipps
News
Menu-Icon

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!

Fremdwörter? Erklärungen im Lexikon!
Grundstrich
Der Begriff des Grundstrichs im Bereich der Typografie, bezeichnet den senkrechten Strich der Buchstaben. Bei Schriftarten mit variabler Strichstärke, wie zum Beispi...

True Color
Der Begriff True Colors ist ein Begriff aus der Computertechnik und lässt sich übersetzen mit Echtfarben. Weiterhin ist dies ein Überbegriff für die D...

TrueType
TrueType ist ein von Apple entwickeltes Schriftformat, das in den späten 1980er Jahren eingeführt und später von Microsoft lizenziert und weiterentwickelt ...