MQL5Book/Scripts/p2/StmtLoopsFor.mq5

69 lines
1.9 KiB
MQL5
Raw Permalink Normal View History

2025-05-30 16:09:41 +02:00
//+------------------------------------------------------------------+
//| StmtLoopsFor.mq5 |
//| Copyright 2021, MetaQuotes Ltd. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link "https://www.mql5.com"
#property version "1.00"
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
// simple single variable loop
int a[] = {1, 2, 3, 4, 5, 6, 7};
const int n = ArraySize(a);
for(int i = 0; i < n; ++i)
a[i] = a[i] * a[i];
ArrayPrint(a); // 1 4 9 16 25 36 49
// Print(i); // error: 'i' - undeclared identifier
// pair of loop variables
for(int i = 0, j = n - 1; i < n / 2; ++i, --j)
{
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
ArrayPrint(a); // 49 36 25 16 9 4 1
// partial loop header
int k = 0, sum = 0;
for( ; sum < 100; )
{
sum += a[k++];
}
Print(k, " ", sum - a[k]); // 3 94
// nested loops
int table[10][10] = {0};
for(int i = 1; i <= 10; ++i)
{
for(int j = 1; j <= 10; ++j)
{
table[i - 1][j - 1] = i * j;
}
}
ArrayPrint(table);
// infinite (!) loop, empty header
for( ; /*!IsStopped()*/; )
{
Comment(GetTickCount());
Sleep(1000);
// exit upon user request to remove the script
// 'Abnormal termination' after 3 seconds of graceful timeout
}
Comment(""); // never reached till !IsStopped() is commented
}
//+------------------------------------------------------------------+