Как вернуть значение и конечное условие после первого true в c ++? - PullRequest
0 голосов
/ 14 апреля 2020

Мне нужно вернуть значение для первого true и затем завершить условие.

Пример кода:

if (z > 0) 
return t;
return 0;

Где t считается месяцем проекции, а z зависит от т. Мне бы хотелось, чтобы это условие возвращало t при достижении первой истины, а затем заканчивало условие (или 0 для следующих истин).

В качестве альтернативы это условие могло бы перечислять истины - возвращать 1 после 1-й истины, 2 после второй ..

Дело в том, что мне нужно знать, когда tz выше 0 в первый раз.

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

, чтобы сделать это, вам нужно сохранить состояние проверки в первый раз, когда условие z> 0, в зависимости от контекста, в котором вы можете сделать это, используя переменную stati c, вот решение (где я предполагаю, что оба t и z - переменные целочисленного типа):

using namespace std;

static bool zBecameTrue = false;

int returnTwhenZBecameTrue(int z, int t)
{
    if(z > 0 && !zBecameTrue)
    {
        zBecameTrue = true;
        return t;
    }
    else
    {
        return 0;
    }
}


int main()
{
    int z = -1;
    int t = 10;

    cout<<returnTwhenZBecameTrue(z,t)<<endl;
    z++;
    cout<<returnTwhenZBecameTrue(z,t)<<endl;
    z++;
    cout<<returnTwhenZBecameTrue(z,t)<<endl;
    z++;
    cout<<returnTwhenZBecameTrue(z,t)<<endl;
    z++;
    cout<<returnTwhenZBecameTrue(z,t)<<endl;

    return 0;
}

вывод:

0                                                                                                                                                            
0                                                                                                                                                            
10                                                                                                                                                           
0                                                                                                                                                            
0 
0 голосов
/ 14 апреля 2020

Для этого вы можете использовать переменную bool. Например,

bool first_true = false;

//Some condition that makes first_true = true

//Now just check if first_true is true or false
if(z > 0)
{
    if(first_true == true)
    {
       return t; 
    }
}

Также вы можете сохранить эту переменную bool в файле, чтобы ваша программа запомнила первое значение true.

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