Цикл в условии оператора IF - PullRequest
1 голос
/ 21 июня 2011

я просто хочу знать, есть ли способ для цикла быть в условии оператора If?

образец:

if((string.contains(stringlist.hello().value(0),Qt::CaseInsensitive))||(string.contains(stringlist.hello().value(1),Qt::CaseInsensitive))||(string.contains(stringlist.hello().value(2),Qt::CaseInsensitive)))
{
...
}

будет:

if
(
for(int i=0; i < stringlist.hello().size(); i++)
{
string.contains(stringlist.hello().value(i),Qt::CaseInsensitive)
}
)
{
...
}

кстати, функция hello () извлекает список данных из базы данных. Цель этой программы - проверить строку, если она содержит несколько ключевых слов из базы данных.

1 Ответ

8 голосов
/ 21 июня 2011

Этот код не будет компилироваться; вместо этого вы можете попробовать решение, которое проверяет каждое условие и сохраняет результат в переменной, определяющей, выполняется ли условие:

bool testCond = false;
for(int i=0; i < stringlist.hello().size(); i++)
{
    if (string.contains(stringlist.hello().value(i),Qt::CaseInsensitive))
    {
        testCond = true;
        break;
    }
}
if (testCond)
{
    // code here if any of the conditions in the for loop are true
}

Я изменил свой код, чтобы использовать bool вместо int, так как похоже, что вы используете C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...