if-elseステートメントをC言語で記述するとき、 "等しくない"オペレータを優先的に使用する理由はありますか?両方が同じ結果を生み出すことができる時は?if-elseステートメントの "等しい"オペレータと "等しくない"オペレータ
次のコードは、コンテキストを示しています。これにより、引数countが2の場合、文字列がユーザから取得されます。しかし、引数の値が他にあれば、エラーメッセージが表示されます。
int main(int argc, string argv[])
{
string msg;
if (argc == 2)
{
msg = GetString();
}
else
{
printf("ERROR: Please only enter a single key! \n");
return 1;
}
しかし、私は「に等しいではない」、および関連するアクションを弾くことにあれば、他のループの条件を変更することにより、上記とまったく同じ結果を達成することができます。以下を参照してください:
int main(int argc, string argv[])
{
string msg;
if (argc != 2)
{
printf("ERROR: Please only enter a single key! \n");
return 1;
}
else
{
msg = GetString();
}
とにかく、両方とも同じ結果が得られますが、どちらか一方を優先的に使用する必要がありますか?
もしそれが重要だと思うなら、あなたはコンパイラがそれほど簡単な変換を行うと期待するべきです。 – jamesdlin
'main()'がそれらの配列を受け入れるので、このコードに 'string'が何であるかという疑問もあります。 'string'が' char * 'と等価でなければ、コードは未定義の振る舞いをします。 'GetString()'が 'char * '以外のものを返すと、未定義の振る舞いも潜在的にあります。このコードスニペットで未定義の振る舞いがある場合、 'if'ステートメントの実装方法に関する議論は疑問です。 – Peter
原則を問わず、すべてのコーディングスタイルの質問を締め切らせてもらえますか?これらのことは議論するのに非常に重要であり、どこにでもフォーラムはありません。プログラミング本は、典型的にスタイルは言及しておらず、プログラマーもそうではない。その結果、すべてのCおよびC++プログラムの大半は、読み込み不能なものです。ベテランプログラマーのスタイルに関する実践的な議論を聞くことは、誰にとっても非常に役に立ちます。 SOはこの目的には理想的です。 – Lundin