如何在c++中循环遍历多个条件IF语句
How to loop through multiple condition IF statement in C++
我是一个编程新手,我写了一段可以工作的代码,但我对使其可扩展感兴趣。
下面的代码检查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;
}
相关文章:
- 无论条件是否为true,if总是在c++中执行
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 将按位if条件转换为普通if条件
- 为什么简单的算术减法在"if"条件下不起作用?
- 如果条件不相关,我应该更喜欢两个 if 语句而不是 if-else 语句吗?
- 为什么这个if(s[j]==s[i] && i>0)条件不适用于这个[{()}]
- 在 if 语句中使用 GetKeyState 时,它会跳过条件
- 如何改进一堆在已知值范围内评估变量的 else-if 条件?
- C++ 中的"if"语句不会从左到右计算条件
- 当我的 if 条件计算结果为 false 时,我的 else 块将不会执行
- C++ GUI 条件 if 语句始终为真
- 条件if中类成员的作用域
- 将数组成员与嵌套循环进行比较,计算满足条件(if)的次数
- 子句内多个条件"if"求值顺序
- 如何在c++中循环遍历多个条件IF语句
- 紧凑的多条件if语句
- 智能指针作为条件:if (p)和if (p.get())是等价的
- 哪一个更快?函数调用或条件if语句
- 优化条件"if (m == 0 || n == 0)"的方法
- C/C++多条件If语句