みんな! 私は 'do-while'ループを示すためにC++でプログラムを書いていました。このプログラムは、「さようなら」でない限り、ユーザーが入力したものだけをエコーします。 したがって、ユーザーが「hey」と入力すると、プログラムは「hey」をエコーし、ユーザーが「さようなら」と入力すると、プログラムは停止します。これはコードです:C++ do-whileループ
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
string wordString;
do
{
cout << "\nEnter a word: ";
getline(cin, wordString);
cout << "\nYou entered: " << wordString<<"\n";
} while ((wordString!="goodbye")||(wordString!="Goodbye"));
return 0;
}
私がやりたいことは、ユーザが言葉「さようなら」や入力したときにプログラムを停止させることだった「さようなら」。それで私は||を追加しましたそれが機能していないことを確認するために、 ループステートメントは単に実行し続けるだけです。 しかし、私が置くとき& &の代わりに||適切に機能し、「さようなら」や「さようなら」が入力されるたびにプログラムが停止しました。
私の質問はこれです:なぜですか& &と||しない?
紙にwordString' 'に異なる値を割り当て、何を参照してください。
回避策は、あなたが一つの値だけをチェックし、すべての資本または小文字のいずれかに入力されたテキストに変換することができますです各条件はに評価されます。これは本当にSOに関する完全な質問を保証しますか? – StoryTeller
[De Morganの法律](https://en.wikipedia.org/wiki/De_Morgan%27s_laws)を適用すると、その理由がわかります。 – Jodocus
ロジック; whileは常にORと1になります。 ANDを使用すると、いずれかの条件が0のときは0になります。 – JDQ