如何在c++中循环遍历多个条件IF语句

How to loop through multiple condition IF statement in C++

本文关键字:条件 IF 语句 遍历 循环 c++      更新时间:2023-10-16

我是一个编程新手,我写了一段可以工作的代码,但我对使其可扩展感兴趣。

下面的代码检查vector列表中的单个单词是否与另一个vector列表中的任何单词匹配。

            if (words[i] != dislike[0] && words[i] != dislike[1] && words[i] != dislike[2] && words[i] != dislike[3])  //check for disliked words
                cout << words[i] << 'n';

可以看到,代码通过逐字迭代来完成这项工作,所以如果我要改变第二个向量列表中的单词数,我需要将其添加到if语句中。

是否有更优的解?我一直试图弄清楚这几个小时,但我没有运气。谢谢。

注:下面是我的完整代码:

int main()
{
    // words we dislike
    vector<string>dislike = { "broccoli", "coke", "potatoes", "water" };
    //take input from user
    vector<string> words;
    for (string temp; cin >> temp; ) // read whitespace-separated words
        words.push_back(temp); // put into vector
    //give output
    cout << "Number of words: " << words.size() << 'n';
    //sort(words); // DONT sort the words
    for (int i = 0; i<words.size(); ++i) //go through your words vector
    {
        if (i == 0 || words[i - 1] != words[i])//remove repeating words
        {           
            if (words[i] != dislike[0] && words[i] != dislike[1] && words[i] != dislike[2] && words[i] != dislike[3])  //check for dislike
                cout << words[i] << 'n';
            else
                cout << "BlEEP!n";   //print if word is disliked*/
        }
    }
    return 0;
}

这个怎么样?添加另一个循环for,遍历所有dislike向量。

int main()
{
    // words we dislike
    vector<string>dislike = { "broccoli", "coke", "potatoes", "water" };
    //take input from user
    vector<string> words;
    for (string temp; cin >> temp; ) // read whitespace-separated words
        words.push_back(temp); // put into vector
    //give output
    cout << "Number of words: " << words.size() << 'n';
    //sort(words); // DONT sort the words
    for (int i = 0; i<words.size(); ++i) //go through your words vector
    {
        if (i == 0 || words[i - 1] != words[i])//remove repeating words
        {     
           for(int j=0;j<dislike.size();j++)
           {
              int count = 0;
              if (words[i] != dislike[j])count++;
              if(count  == dislike.size())cout << words[i] << 'n'; //check for dislike
              else
                cout << "BlEEP!n";   //print if word is disliked*/
           }
        }
     }
    return 0;
    }