2017-01-19 5 views
0

私はC++の新機能です。このコードで複数のエラーがありますC++でif-else文を書くには?

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

等価比較== not =は、割り当てようとしています。 TBHの場合、整数を「はい」と比較することは意味をなさない。 – Borgleader

+3

ちょうどプログラミングチュートリアルに従ってください。 – csmckelvey

+2

この質問は良いC++の本で最もよく答えられます。おそらくあなたは[C++推奨のブックリスト](http://stackoverflow.com/questions/388242/)を見てみるべきです。 – jaggedSpire

答えて

-2

コードのデータ型が正しくありません。文字列 "yes"と比較するint型の変数 'a'があります。それを論理的な観点から見てみましょう。あなたは比較することができます:

  • 2数字(例えば、2が1よりも大きい)
  • 2列(例えば、 "食品" は "猫" と同じ言葉ではありません) 等...

あなたの場合、入力された数字(5と仮定します)と単語「はい」を比較しています。 var aの文字を入力しようとすると、コンパイルエラーが発生します。したがって、単に次のように変更してください:

if-thenループで条件をチェックするときに問題が発生します。比較演算子は、1つの等号ではなく、2つの等号である。単一の等号記号は、右側の項目を左側の項目に割り当てます。たとえば、次のようになります。

int num = 5; 

変数numには5が割り当てられます。ただし、変数を独自の条件に割り当てることはできません。

あなたのループは、満たすべき条件に変数を設定するため、常に真です。

if (a == "yes") 

これは、var aに格納された値と==の右側の値を比較します。

ちょっとしたアドバイス、私はC++の良い本を手に入れることをお勧めします。それらをオンラインで検索します。 edx、コース記録などのオンラインプログラミングコースを受講することもできます。あなたが利用できる他の多くの無料の学習リソースもオンラインであります。より単純なプログラミング言語に挑戦したいかもしれません。私はスクラッチをお勧めします。これはプログラミングに関する非常に基本的なアイデアを提供し、1週間以内に実行できます。

**これは最も簡単な方法だと思います。ただし、aの型をcharに設定し、入力を受け入れてから文字列に変換することもできます。がんばろう!

0

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

ここでは、これまで私のコードは次のとおりです。私の目標は、次のロジックを記述することです。

あなたの状態で比較演算子を使用する必要があります。これは二重等号 "=="で示されます。あなたのコードは、変数 "a"に値 "Yes"を割り当てようとする割り当て "="を使用しています。これはC/C++の一般的なエラーですので、物事を比較するときは常に注意する必要があります。

もう1つのエラーは、変数aを整数と宣言しているため、「はい」が文字列であるためコンパイルしようとすると型の不一致エラーが発生することです。

0

まず、あなたのプログラムで何をしたいですか?

割り当てと等価を区別する必要があります。 条件文を実行する前に、基本を理解しておく必要があります。

合理的なプログラムは次のように行く必要があります。

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

=は物事を割り当てます。 ==を使用して比較しますが、intと文字列を比較しています。 注意しないと、文字列を扱うときにchar *のアドレスと数値を比較します。 代わりに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; 
}