Цикл while выполняется дважды за один вызов функции - PullRequest
0 голосов
/ 14 апреля 2019

У меня проблема с циклом while, я проинструктировал, что переменная key1 должна выполняться только тогда, когда были выполнены хотя бы некоторые инструкции «if», однако, он повторно выполняет цикл while, даже если переменная key1равно 0. Следует отметить, что я не изменяю значение переменной key1 в другой части функции

void form_table(...) {

int key1=1;

while (key1 != 0)  <==(2)
{
    key1=0;                 
    if (dx->get_numero() == 1 && dy->get_numero() == 1)
    {
     key1++;

    //Some code
    }

    else if (dx->get_numero() == 1 && dy->get_numero() == 0)
       {
        key1++;
        //some code     
       }
    else if (dx->get_numero() == 0 && dy->get_numero() == 1)
       {
           key1++;
               //some code
       } <==(1)
    else
       break;//I put it in case, but even with that it goes back into the buble while

}


}//Here is the problem, when finish the funcion execution the program comes back to the line (1), and then re-runs the while cycle (2)

1 Ответ

1 голос
/ 14 апреля 2019

цикл работает, если ключ1 отличается от 0, если вы увеличиваете ключ1, и, следовательно, он отличается от 0, который повторяет цикл.

вам нужно сделать:

while (key1 == 0) {
     // rest of the code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...