Как запустить цикл кода, если (a == b) и не делать цикла, если a! = B без "else" - PullRequest
1 голос
/ 14 февраля 2012


вот так должно работать:

if(a == b)
    // loop code
else
    // run code one time no loop

но я хочу

if(a == b)
for(int i = 0; i < 10; ++i)  // if a is equal b begin loop
some_function();             // if a is not equal b run code one time

Solved!!!

Ответы [ 6 ]

11 голосов
/ 14 февраля 2012

Вы можете установить предел цикла.

int limit = a == b ? 1 : 10;
for (i = 0; i < limit; ++i)
{
   ...
}

Если a == b, цикл запускается один раз.Если a! = B, цикл запускается столько, сколько вам нужно (10 в вашем случае).

4 голосов
/ 14 февраля 2012

Используйте цикл do {} while, поскольку он выполняется хотя бы один раз:

int i = 0;
do
{
} while (a == b && i++ < 9);
2 голосов
/ 14 февраля 2012
  int limit = (a==b)? 10 :1;
      for (i=0;i<limit;i++) {
           //your code
      }

limit будет установлен в 10, если a==b, иначе 0 в противном случае

наоборот

  int limit = (a==b)? 0 :9;
    for (i=limit;i<10;i++) {
         // your code
      }

limit будет установлен в 0, если a==b, иначе 9 в противном случае

2 голосов
/ 14 февраля 2012

Сначала запустите код один раз, и если ваше условие будет выполнено, запустите ваш цикл (и при необходимости измените выражения цикла). Если возможно, используйте функцию, чтобы не дублировать код.

run_code_one_time;

if (a == b) {
    your_loop;
}

// no else
2 голосов
/ 14 февраля 2012

Напишите свой код в методе, вызовите его в цикле столько раз, а после if вызовите его один раз.Надеюсь, это поможет.

0 голосов
/ 14 февраля 2012
int i=0;

while (a == b)
{

    // code for when a is equal to b
    i++;
    if(i == 10)
        a = b+1;
}

// code for when a is not equal to b executed once
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...