Выполнение следующего оператора else после некоторого подсчета - PullRequest
0 голосов
/ 11 января 2020

Если x <2, то мы выполняем некоторый код, иначе, если x> 2 повторяется более 5 раз, мы выполняем другой код. Какова правильная структура для этой задачи?

int counter =0;
int=x;
if (x<2)
       doSomething;
else 
      count++
else if (count>5)
      doSomethingElse;

Ответы [ 3 ]

1 голос
/ 13 января 2020

Если вы хотите повторить something() n раз, затем выполните something_else(), тогда лучше всего будет

#include <stdio.h>
#include <stdlib.h>

#define WHERE_I_AM()     do{ printf("in %s\n", __func__);} while(0)

void do_something()
{
        WHERE_I_AM();
}

void do_something_else()
{
        WHERE_I_AM();
}

int main()
{
        int n_times = 5;

        while(n_times--)
                do_something();
        do_something_else();

        exit(EXIT_SUCCESS);
}

, что соответствует

$ pru
in do_something
in do_something
in do_something
in do_something
in do_something
in do_something_else
$ _

, если вы хотите делайте так, как вы говорите, что следующая else часть выполняется после указанного количества раз, прежде всего вы должны уточнить, сколько раз вы собираетесь выполнить l oop. Лучше, если вы опубликуете полный пример, как указано в Как создать пример Minimal, Complete и Verifiable Допустим, вы находитесь в for l oop, который будет выполнен 20 раз ... и после пятого вы хотите, чтобы он выполнял другую функцию.

Если вы измените приведенный выше код следующим образом:

[...]
        int n_times_first = 5;
        int n_times_total = 20;
        int i;

        for(i = 0; i < n_times_total; i++) {
                if (i < n_times_first)
                        do_something();
                else
                        do_something_else();
        }

        exit(EXIT_SUCCESS);
[...]

, но на этот раз вы получите 5 выполнений do_something() и еще 15 do_something_else().

0 голосов
/ 11 января 2020

Не совсем понятно, когда делать что-то еще, но если вы хотите сделать что-то еще, если число> 5 независимо от значения x, попробуйте это:

if ( count > 5 ) {
   doSomethingElse;
} else {
   if ( x < 2 ) {
      doSomething;
   } else {
      count++;
   }
}
0 голосов
/ 11 января 2020

Вот так:

if (x<2)
       doSomething;
else if (count <= 5)
      count++;
else
      doSomethingElse;
...