我想知道是否可以使用其他类型的“循环”来创建易于阅读的程序。我在玩循环,我想知道是否有更快或更简单的方法,而不是在键入单词时重复循环...

#include <iostream>
#include <iomanip>
#include <string>
#include <sstream>
#include <fstream>
#include <math.h>
#include <stdio.h>
#include <string>
#include <string.h>
#include <cstdlib>

using namespace std;

char guess1, guess2, guess3;
int main()
{
    // the word is cat...

    cout << " Please enter your first guess : _ _ _ \n";
    cin >> guess1;

    if (guess1 == 'c')
    {
        cout << " please enter your second guess: c _ _ \n";
        cin >> guess2;
        if (guess2 == 'a')
        {
            cout << " please enter your second guess: c a _ \n";
            cin >> guess3;
        }
        if (guess2 == 't')
        {
            cout << " please enter your second guess: c _ t \n";
            cin >> guess3;
        }
        else
        {
            cout << " Wrong answer : # ";
            cin >> guess3;
        }

        if (guess1 == 'a')
        {
             cout << " please enter your second guess: _ a _ \n";
             cin >> guess2;
        }
        if (guess1 == 't')
        {
            cout << " please enter your second guess: _ _ t \n";
            cin >> guess2;
        }
        else
        {
            cout << " Wrong answer : # ";
            cin >> guess2;
        }
    }
    return 0;
}

最佳答案

当然可以。您可以执行以下操作:

bool solved = false;
prompt = "Please enter your guess:";
char guess;
char f1='_', f2='_', f3='_'

while(!solved){
   cout << prompt << f1 << f2 << f3 << std::endl;
   cin.get(guess);
   switch(guess){
      case 'c':
        f1 = 'c';
        break;
      case 'a':
        f2 = 'a';
        break;
      case 't':
        f3 = 't';
        break;
      default:
        cout << "wrong answer";
        break;
   }
   if(f1=='c' && f2=='a' && f3=='t')
     solved = true;
}

您可以轻松地使用while(1)并稍作休息;在if条件末尾。
我并没有为实际运行该程序而烦恼,因此可能会出现一些错误,但是希望这可以回答有关如何处理此类问题的一般问题。

我还注意到您没有用于猜测的变量,但已完全使用c _和_ _ t。当您有2个猜测时会发生什么?这就是为什么变量是一个好主意的原因。

07-24 09:52
查看更多