while循环之外的else语句

时间:2016-02-16 06:03:20

标签: c++ if-statement while-loop

我试图在 while 循环中输入 if else 语句来读取数据。

以下是简化代码:

char customColor;
cin >> customColor;   
while (!ws(file).eof())
{
 file >> color;
    if (customColor == color)
    {
    //////////////////
    }
    else
        cout << "invalid color" << endl;
}

问题是控制台写了&#34;无效的颜色&#34;每当我输入的内容与文件中的内容不匹配时,我想要做的就是写出#34;无效的颜色&#34;只有当文本文件中的结果与我输入的颜色不匹配时。

我想知道是否有办法将其他语句放在 while 循环之外。

2 个答案:

答案 0 :(得分:3)

您可以使用if else语句设置bool来检查文本文件中的结果是否与您输入的颜色相匹配。

char customColor;
cin >> customColor;

bool check = false;

while (!ws(file).eof())
{
    file >> color;
    if (customColor == color)
    {
       check = true;
    }
}

if (!check)
{
    cout << "invalid color" << endl;
}

答案 1 :(得分:2)

  

如果有任何方法将else语句放在while循环之外。

你不能直接这样做,但是你可以制作一个标志变量并为它做一些记账。

char customColor;
cin >> customColor;   
bool matched = false;
while (!ws(file).eof())
{
  file >> color;
  if (customColor == color)
  {
    //////////////////
    matched = true;
  }
}

if (!matched) {
  cout << "invalid color" << endl;
}