'continue' - unconditional jump label error

 
void continueError() {
	int i = 10;
	double max = 0.0;
	//for (;i > 0;) {	
	while (i > 0) {
		i--;
		if (Close[i] > max)
			max = Close[i];
		else
			continue;

		Print("new max=" + max);					
	}
}



Цикл

while (i > 0)

не компилируется с continue. В тоже время аналогичнный цикл

for (;i > 0;)

компилируется. Вопрос знактокам: чтобы это значило?

 
будем разбираться. какая у Вас версия компилера?
дополнение:
представленный фрагмент кода не даёт ошибок компиляции. функция, вставленная в конец существующего эксперта не даёт ошибок компиляции. пошлите пожалуйста код Вашего эксперта на stringoATmetaquotesdotru
 
будем разбираться. какая у Вас версия компилера?
дополнение:
представленный фрагмент кода не даёт ошибок компиляции. функция, вставленная в конец существующего эксперта не даёт ошибок компиляции. пошлите пожалуйста код Вашего эксперта на stringoATmetaquotesdotru


Эксперт большой с инклудами, но я из него поудалял все лишнее, но чтобы осталась эта ошибка.
//+------------------------------------------------------------------+
//|                                               ContinueExpert.mq4 |
//|                                                           Tester |
//|                                                         dev/null |
//+------------------------------------------------------------------+
#property copyright "Tester"
#property link      "dev/null"

int init() {  return(0); }
  
int deinit() {  return(0);  }
  
int start()  {   return(0);  }

#include <stdlib.mqh>

string lastError() {
    int err = GetLastError();
    return ("Error " + err + ": "  + ErrorDescription(err));
    //return ("Error " + err + ": ");
}


//check last error and if any print
bool printLastError(string source) {
    int err = GetLastError();
    //0 == ERR_NO_ERROR, 4000 = ERR_NO_MQLERROR
    if (err == 0 || err == 4000)
        return (false);
    
    Print(source + " error " + err + ": "  + ErrorDescription(err));
    return (true);
}


int LogFileHandle = -1;

void openLog(string logFileName) {
    //closeLog();
    LogFileHandle = FileOpen(logFileName, FILE_READ | FILE_WRITE | FILE_CSV, '\t');

    if (LogFileHandle < 0)
        Print("Can''t open log file " + logFileName + ": " + lastError());//
    else {
    	FileSeek(LogFileHandle, 0, SEEK_END);
    	Print("Log " + logFileName + " opened. handle=" + LogFileHandle); 
    }
}


// prints message to system log and expert file
void log(string message) {
    Print(message);
    if (LogFileHandle >= 0) {
        int wrote = FileWrite(LogFileHandle, 
        TimeToStr(LocalTime(), TIME_SECONDS), message);
        if (wrote < 0)
            printLastError("log " + LogFileHandle);
    }
}


void continueError() {
	int i = 10;
	double max = 0.0;
	//for (;i > 0;) {	
	while (i > 0) {
		i--;
		if (Close[i] > max)
			max = Close[i];
		else
			continue;

		Print("new max=" + max);					
	}
}



Если удалить любую функцию выше, например, log() - ошибка пропадает. MetaEditor у меня 4.00 Build 142.

 
спасибо. нашли ошибку в компилере. в следующем билде будет исправление