この場合、ブレークポイント「q」または「Q」が入力されるまで、P1ベクトルに整数を入力し続けたいと思います。ブレーク条件が満たされたら、実行されたプログラムは無限ループに狂ってしまいます。私が見ることができるすべてのアイデアは、 'q'または 'Q'が文字であるため、whileループが実行されて無限ループするとき整数ベクトルがこれを入力として受け取りますか?whileループが終了しないC++
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
int main()
{
//Declaring Polynomial 1 and 2
vector<int> P1;
vector<int> P2;
int x = 0;
int y = 0;
while (x != 'q'||x != 'Q') {
cout << "Please enter in the first polynomial one value at a time (Press Q when done)...";
cin >> x;
P1.push_back(x);
}
//Also tested with a do while same problem
/*do
{
cout << "Please enter in the first polynomial one value at a time (Press Q when done)...";
cin >> x;
P1.push_back(x);
} while (x != 'q');*/
//Ignore this is for next part of program
vector<int> Res((P1.size() + P2.size()) + 1);
cout << P1.size() << "," << P2.size() << "," << Res.size();
return 0;
}
条件 'x!=' q '|| x!=' Q''は常に真です。理由は分かりますか? –
よくxはqではない0から始まるので、TRUEで始まるので、私のロジックはfalseまたはfalse = falseなので、xが 'q'または 'Q'になるまで実行し続けます。これはFALSEになり、確かにループ? – Tom
整数変数と文字リテラルを比較するのはなぜ理にかなっていると思いますか?次のコードを試してください: 'int x = 'Q'; cout << x; 'それは何を印刷しますか?これはあなたが欲しい、または期待していることですか? –