2017-01-19 6 views
0

Ich bin sehr neu in C++. Mein Ziel ist es, die folgende Logik zu schreiben:Wie schreibe ich eine if-else-Anweisung in C++?

if a = yes then print "ok", else return 0 

Hier ist mein Code so weit:

int a; 
cin>>a;       
if (a = "Yes") { // Error right here 
    cout<< "ok"; << endl; 
}else{ 
    return 0; 
} 
+2

Gleichheitsvergleich ist == nicht =, Sie versuchen, zuzuweisen. TBH, der Vergleich einer Ganzzahl mit "Ja" ergibt keinen Sinn. – Borgleader

+3

Bitte folgen Sie einfach einem Programmier-Tutorial. – csmckelvey

+2

Diese Frage beantwortet man am besten mit einem guten C++ Buch. Vielleicht sollten Sie sich die [C++ empfohlene Buchliste] ansehen (http://stackoverflow.com/questions/388242/). – jaggedSpire

Antwort

-2

Ihr Code ist in Bezug auf Datentypen falsch. Sie haben eine Variable 'a' vom Typ int, die Sie mit der Zeichenfolge 'yes' vergleichen. Versuchen Sie es aus einem logischen Blickwinkel zu sehen; Sie können vergleichen:

  • 2 Zahlen (zum Beispiel 2 größer als 1)
  • 2 Strings (zum Beispiel "Essen" ist nicht das gleiche Wort wie "Katze") Etc ...

In Ihrem Fall vergleichen Sie eine eingegebene Zahl (nehmen wir 5 an) mit einem Wort "ja". Wenn Sie versuchen, einen Buchstaben für Var a einzugeben, erhalten Sie einen Kompilierungsfehler. Daher einfach folgend ändern:

string a; 

Ein weiteres Problem mit Ihrem Code ist, wenn die if-then Schleife die Bedingung überprüft; Ein Vergleichsoperator ist 2 gleiche Zeichen nebeneinander statt eines einzelnen Gleichheitszeichens. Ein einzelnes Gleichheitszeichen weist das Element auf der rechten Seite dem Element auf der linken Seite zu. Zum Beispiel in:

int num = 5; 

Die Variable num ist 5. zugewiesen Aber Sie wollen einen Vergleich zu machen, nicht zuweisen die Variable ihren eigenen Zustand!

Ihre Schleife ist immer wahr, weil Sie die Variable auf die Bedingung eingestellt haben, die sie erfüllen soll.Sie müssen auch Folgendes tun: in var a auf den Wert auf der rechten Seite des == gespeichert

if (a == "yes") 

Dieser vergleicht den Wert.

Nur ein paar Ratschläge, ich würde Ihnen empfehlen, ein paar gute Bücher über C++ zu bekommen. Suche sie online. Sie können auch Online-Programmierkurse zu edx, course record, etc ... nehmen. Es gibt auch viele andere kostenlose Lernressourcen online, die Sie nutzen können. Vielleicht möchten Sie auch in eine einfachere Programmiersprache eintauchen; Ich würde Scratch empfehlen. Es gibt Ihnen eine sehr grundlegende Idee über die Programmierung und kann in weniger als einer Woche erledigt werden.

** Beachten Sie, dass dies der einfachste Weg ist; Sie können jedoch auch den Typ von a auf ein char setzen, eine Eingabe akzeptieren und sie dann in eine Zeichenfolge zurückkonvertieren. Viel Glück!

0

Es gibt mehrere Fehler in diesem Code.

Sie müssen den Vergleichsoperator in Ihrem Zustand verwenden. Dies wird mit dem doppelten Gleichheitszeichen "==" bezeichnet. Ihr Code verwendet die Zuweisung "=", die versucht, der Variablen a den Wert "Ja" zuzuweisen. Dies ist ein häufiger Fehler in C/C++, so dass Sie vorsichtig sein müssen, wenn Sie Dinge vergleichen.

Der andere Fehler ist, dass Sie die Variable a zu einer Ganzzahl deklariert haben, so erhalten Sie einen Typenkonfliktfehler beim Versuch zu kompilieren, weil "Ja" eine Zeichenfolge ist.

0

Zuallererst, was soll Ihr Programm tun?

Sie müssen Zuordnung unterscheiden und gleich Operator. Bitte beachten Sie, dass Sie die Grundlagen verstehen müssen, bevor Sie bedingte Anweisungen ausführen.

Ein vernünftiges Programm sollte so gehen:

int a; 
    cin>>a;       
    if (a == 5) { // 5 is an integer 
     cout<< "You entered 5!" << endl; // no semicolon after " 
    } 
return 0; // must be out of the else statement 
0

= ordnet Dinge. Verwenden Sie zum Vergleichen ==, jedoch vergleichen Sie eine int mit einer Zeichenfolge. Wenn Sie nicht vorsichtig sind, vergleichen Sie die Adresse eines Char * mit einer Zahl, wenn Sie mit Strings arbeiten. Verwenden Sie stattdessen eine std::string.

#include <string> 

//.... some context I presume 

std::string a; 
cin >> a;       
if (a == "Yes") { // Error right here 
    cout<< "ok"; << endl; 
}else{ 
     return 0; 
}