修理済み。ありがとうございました。
以下のコードでは、コンパイルして実行しますが、do/while ループでスタックします。戻り値は機能していますが、while ループはそれを認識してはならず、無限に進みます。true と false のリターンを受け取ることができます。どちらもループを停止しません。ここで本当に迷子になり、答えが見つかりません。ありがとうございました。
//helper function for inputGuess
//checks if the user's guess is in the lowercase alphabet and that
// it has not been guessed before
bool Hangman::validGuess() {
//checks if the character guess is in the lowercase alphabet
if (guess >= 97 && guess <= 122) {
//checks if the user's guess has been guessed previously
if (guessed.size() > 0) {
for (int i = 0; i < guessed.size(); i++) {
cout << "enter for\n";
cout << "guess[i]: " << guessed[i] << endl;
if (guess != guessed[i]) {
cout << "1st true: guess has not been guessed\n";
return true;
}
else {
cout << "1st false: same letter\n";
return false;
}
}
}
else {
cout << "2nd true: guessed size is 0\n";
return true;
}
}
else {
cout << "2nd false: not alphabet\n";
return false;
}
}
//gets input for guess, checks if guess is valid, adds guess to guessed
void Hangman::inputGuess() {
bool valid = false;
do {
cout << "Please enter your guess: ";
cin >> guess;
cout << endl;
valid = validGuess();
cout << "valid: " << valid << endl;
} while (valid == false);
guessed.push_back(guess);
}