1

C++ の while ループに問題があります。while ループは常に最初に実行されますが、プログラムが while ループの cin に到達すると、while ループは完全に機能します。前もって感謝します。また、問題がわかりにくい場合は申し訳ありません。私はまだ初心者です。

cout<<"Would you like some ketchup? y/n"<<endl<<endl<<endl; //Ketchup
selection screen
cin>>optketchup;



while (optketchup != "yes" && optketchup != "no" && optketchup != "YES" && optketchup != "Yes"  && optketchup != "YEs"  && optketchup != "yEs"  && optketchup != "YeS"
     && optketchup != "yeS" &&  optketchup != "YeS"  && optketchup != "yES" && optketchup != "y"  && optketchup != "Y"  && optketchup != "No"  && optketchup != "nO"
      && optketchup != "NO"  && optketchup != "n"  && optketchup != "No");
{

    cout<<"You have entered an entered "<<optketchup<<" which is an invalid
 option. Please try again."<<endl;
    cin>>optketchup;

}


if (optketchup == "yes" || optketchup == "YES" || optketchup == "Yes"  || optketchup == "YEs"  || optketchup == "yEs"  || optketchup == "YeS"
     || optketchup == "yeS" ||  optketchup == "YeS"  || optketchup == "yES" || optketchup == "y"  || optketchup == "Y")
{
    slcketchup == "with";
}
else
{
    slcketchup == "without";
}

cout<<"Your sandwich shall be "<<slcketchup<<" ketchup."<<endl;



system ("pause");

もう一度、よろしくお願いします。

4

2 に答える 2

3

にセミコロン (';') がありwhileます。それが問題の原因です。

書かないで

while(.... lots of conditions ...);
{
    //stuff
}

書く

while(.... lots of conditions ...)
{
    //stuff
}

2 番目の の欠如に注意してください;

それ以外に、単語をチェックする必要があるとしたらどうでしょうPneumonoultramicroscopicsilicovolcanoconiosis。大文字と小文字の組み合わせをいくつチェックすることになりますか? 代わりに、入力を大文字に変換し、大文字のYESorNOまたはと比較しPNEUMONOULTRAMICROSCOPICSILICOVOLCANOCONIOSISます。

于 2012-12-09T06:10:56.960 に答える
1

1 行のコードを実行する制御ステートメントは、2 つの異なる方法で記述できます。

if (optketchup == "yes") {
  slcketchup = "with";
}
if (optketchup == "yes") slcketchup = "with";

次のコードも有効です。違いは、 が にoptketchup等しいときに実行する命令がないこと"yes"です。

if (optketchup == "yes");

これは、 などの他の制御ステートメントにも当てはまりますwhile

また、=は代入演算子、while==は比較演算子です。最初のものを使用したいときに後者を使用しています。
次に、他の人がすでに指摘したように、小文字に変換するだけです。小文字と大文字の組み合わせを使用して書かれた「はい」の可能なバリアントをチェックする代わりにoptketchup、小文字の値を と比較するだけです。"yes"

于 2012-12-09T06:02:19.037 に答える