Ошибки, баги, вопросы - страница 3319

 
A100 #:

Совет тот же:


Только после вас… Изучите эту часть документации…

 
Alexey Viktorov #:

И если нет ни одной команды, то скобки тоже не нужны.



Посмотрите на синтаксис оператора цикла do ... while()

Тело там обязательно!
Оно может быть пустым:
do {} while(...)
но оно не может отсутствовать.
 
Sergey Gridnev #:

Посмотрите на синтаксис оператора цикла do ... while()

И???

do
   оператор;
while(выражение);
 
Alexey Viktorov #:

И???

Где оператор?

do
    while( 0 ); //(1)
while( 0 );     //(2)
 
Sergey Gridnev #:

Посмотрите на синтаксис оператора цикла do ... while()

Тело там обязательно!
Оно может быть пустым:
do {} while(...)
но оно не может отсутствовать.

А в МЕ проверить не судьба? 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

Alexey Viktorov, 2023.05.22 16:53

И если нет ни одной команды, то скобки тоже не нужны.

Если в цикле нет тела, то компилятор просто выкинет его и не будет его учитывать.

      do
        while(0);


 

Как вы здо́рово дописываете свои сообщения…

Я тоже допишу. В этом варианте получается цикл do while и второй, отдельный цикл while

Вот ведь уже было сказано о точке с запятой

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

Alexey Viktorov, 2023.05.22 16:53

И если нет ни одной команды, то скобки тоже не нужны.

Если в цикле нет тела, то компилятор просто выкинет его и не будет его учитывать.

      do
        while(0);

Не надо сочинять…

#define While(X)        for(;(X);)
void OnStart()
{
    do             // Начало цикла.
        While( 0 ) {} //нормально потому, что это просто тело цикла.
    while( 0 ); // Условие завершения цикла.
}
void OnStart()
{
    do                   // Начало цикла
        while( 0 ) {} // Завершение цикла, но написано с ошибкой. Нет ; 
    while( 0 );       // А ЭТО ЧТО??? Видимо новый цикл…
}

 
Alexey Viktorov #:

Как вы здо́рово дописываете свои сообщения…

Вот ведь уже было сказано о точке с запятой


Это уже другой код

 
A100 #:

Это другой уже код

Где здесь по Вашему мнению оператор?

Вам нужен оператор, вы и допишите его. Но это ничего не изменит. Этот пример состоит из двух разных циклов.

 
Alexey Viktorov #:

Вам нужен оператор, вы и допишите его. Но это ничего не изменит. Этот пример состоит из двух разных циклов.

Вопрос не в количестве циклов, а в порядке, в котором они выполняются

 

Вот вам другой пример из документации

for(выражение1; выражение2; выражение3)
   оператор;

Но тем не менее вы часто пишете пустой цикл

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

A100, 2023.05.22 15:21

Задача компилятора не читать мысли, а интерпретировать код строго по синтаксису:

#define While(X)        for(;(X);)
void OnStart()
{
    do
        While( 0 ) {} //нормально
    while( 0 );
}
Где оператор?