1

我正在尝试创建一个 Play() 函数(就像媒体播放器类型播放一样),它首先检查以确保给定对象不在其选择的末尾(如果是,用户将被告知倒带.)

我有一个名为 IsCAtEnd() 的布尔函数。它应该找出 C 是否在末尾。现在我有这样的东西:

bool AC::IsCAtEnd()
{
CAtEnd = (CurrentSelect == NumOfSelect)
if (CAtEnd)
{return true;}
else
{return false;}
}

在我的 Play() 函数中,我有这样的东西——</p>

void AC::Play()
{
int Choice;
cout << Enter Selection to Play: “;
cin >> Choice;

CurrentSelection = Choice;
If (IsCAtEnd())
{
cout << “You need to rewind first.” << endl;
}
else
{
cout << “Playing “ << CurrentSelection << endl;
}

它编译并运行,但不是我想要的那样。例如,如果我输入最后一个选项(假设 C 有 6 个选项,我想播放最后一个选项),它会告诉我快退。相反,我希望它播放该选择,并且下次调用 Play 时告诉我倒带(回忆上次调用 Play 时,它是在最后一个选择上)。我还希望它继续提示用户倒带,直到他们这样做(所以不要再次调用播放,选择不同的选择并让该选择播放)。

我知道我需要这样做,以便如果放入最后一个选择,则 CAtEnd 变量在播放后更改为 true。这样下一次它会声明它需要重绕。我不知道该怎么做。

4

2 回答 2

2

我认为您想先玩它以进行任何选择。然后检查它是否是最后一个。如果是最后一个,则提示回退消息,否则,什么也不做。

你可以像这样改变它

if(currentSelection <= NumberOfSelection)
{
     cout << “Playing “ << CurrentSelection << endl;
}

If (IsCAtEnd())
{
     cout << “You need to rewind first.” << endl;
}
于 2012-12-20T03:12:46.860 回答
0

如果您希望程序在提示 rewind msg 时连续运行并使用用户输入,您可以有一个 while 循环

    int Choice;    
    cout << Enter Selection to Play: “;
    cin >> Choice;

    while(choice != 0)
    {

         CurrentSelection = Choice;

         if(currentSelection <= NumberofSelection)
             cout << “Playing “ << CurrentSelection << endl;

        if (IsCAtEnd())
        {
            cout << “You need to rewind first.” << endl;
            cout << Enter Selection to Play: “;
            cin >> Choice;
        }
}
于 2012-12-20T03:55:25.400 回答