私はC++の新機能です。このコードで複数のエラーがありますC++でif-else文を書くには?
int a;
cin>>a;
if (a = "Yes") { // Error right here
cout<< "ok"; << endl;
}else{
return 0;
}
私はC++の新機能です。このコードで複数のエラーがありますC++でif-else文を書くには?
int a;
cin>>a;
if (a = "Yes") { // Error right here
cout<< "ok"; << endl;
}else{
return 0;
}
コードのデータ型が正しくありません。文字列 "yes"と比較するint型の変数 'a'があります。それを論理的な観点から見てみましょう。あなたは比較することができます:
あなたの場合、入力された数字(5と仮定します)と単語「はい」を比較しています。 var aの文字を入力しようとすると、コンパイルエラーが発生します。したがって、単に次のように変更してください:
if-thenループで条件をチェックするときに問題が発生します。比較演算子は、1つの等号ではなく、2つの等号である。単一の等号記号は、右側の項目を左側の項目に割り当てます。たとえば、次のようになります。
int num = 5;
変数numには5が割り当てられます。ただし、変数を独自の条件に割り当てることはできません。
あなたのループは、満たすべき条件に変数を設定するため、常に真です。
if (a == "yes")
これは、var aに格納された値と==の右側の値を比較します。
ちょっとしたアドバイス、私はC++の良い本を手に入れることをお勧めします。それらをオンラインで検索します。 edx、コース記録などのオンラインプログラミングコースを受講することもできます。あなたが利用できる他の多くの無料の学習リソースもオンラインであります。より単純なプログラミング言語に挑戦したいかもしれません。私はスクラッチをお勧めします。これはプログラミングに関する非常に基本的なアイデアを提供し、1週間以内に実行できます。
**これは最も簡単な方法だと思います。ただし、aの型をcharに設定し、入力を受け入れてから文字列に変換することもできます。がんばろう!
:
if a = yes then print "ok", else return 0
ここでは、これまで私のコードは次のとおりです。私の目標は、次のロジックを記述することです。
あなたの状態で比較演算子を使用する必要があります。これは二重等号 "=="で示されます。あなたのコードは、変数 "a"に値 "Yes"を割り当てようとする割り当て "="を使用しています。これはC/C++の一般的なエラーですので、物事を比較するときは常に注意する必要があります。
もう1つのエラーは、変数aを整数と宣言しているため、「はい」が文字列であるためコンパイルしようとすると型の不一致エラーが発生することです。
まず、あなたのプログラムで何をしたいですか?
割り当てと等価を区別する必要があります。 条件文を実行する前に、基本を理解しておく必要があります。
合理的なプログラムは次のように行く必要があります。
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
=
は物事を割り当てます。 ==
を使用して比較しますが、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;
}
等価比較== not =は、割り当てようとしています。 TBHの場合、整数を「はい」と比較することは意味をなさない。 – Borgleader
ちょうどプログラミングチュートリアルに従ってください。 – csmckelvey
この質問は良いC++の本で最もよく答えられます。おそらくあなたは[C++推奨のブックリスト](http://stackoverflow.com/questions/388242/)を見てみるべきです。 – jaggedSpire