新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 20

 
Renat Akhtyamov:
for(int i=1; int i<int n; int i++)                                                                  
...
对吗?请。

不,我是说。

for( int i = 0; i < x; i++ )
{
}
for( int i = 0; i < x; i++ )
{
}
...

是的,而你写的设计根本就不能用。

 
Artyom Trishkin:
每个变量都有自己的范围。即使在大括号内,在该范围内声明的变量也有一个单独的范围--在大括号内。那么,我为什么要在程序的不同地方创建不同名称的循环索引变量,如果我知道它们不会重叠,而且使用 "i "这样的变量名称就足够了,而且是习惯性的。

我没有和你争论。

 
Renat Akhtyamov:
for(int i=1; int i<int n; int i++)                                                                  
...
对吗?不客气。
你自己也意识到,你故意编造了一个理智的程序员都不会编造的坏例子。
 
Alexey Kozitsyn:

不,我是说。

for( int i = 0; i < x; i++ )
{
}
for( int i = 0; i < x; i++ )
{
}
...


有何意义?请分享你的经验--在这种情况下,即如果你的代码是这样的,可能会有什么问题?

int i;
for( i = 0; i < x; i++ )
{
}
for( i = 0; i < x; i++ )
{
}
...
 
Renat Akhtyamov:

我不是在和你争论。

这是我的主题。而在我给出不好的、次优的建议时,我有权纠正对方。就眼下的情况而言,你是在给出错误的建议。
 
Artyom Trishkin:
这是我的主题。而在给出不良的次优建议时,我有权纠正对方。你,就目前的情况而言,是在提出错误的建议。

你的主题,然后仔细阅读,并将该帖子与你所回复的昵称联系起来。

简而言之,你来错地方了。

 
Renat Akhtyamov:

但这有什么意义?请分享你的经验--在这种情况下可能会出现什么问题,即如果你的代码会是这样的?

int i;
for( i = 0; i < x; i++ )
{
}
for( i = 0; i < x; i++ )
{
}
...

当你在循环外初始化一个计数器时,它的范围会延伸到循环之外,这通常是不需要的。因此,你为可能的错误提供了肥沃的土壤,例如,如果在代码中你将有一个变量j,而你不小心调用了它i。或者你不写索引[1],而写[i],等等。

所以,变量的初始化必须尽可能靠近它们第一次被使用的地方,并避免大量的全局变量。这就减少了可能的错误列表。

 
Alexey Kozitsyn:

当你在循环外初始化一个计数器时,它的范围会超出循环,这通常是没有必要的。通过这样做,你为可能的错误提供了肥沃的土壤,例如,如果再往下看,你有一个变量j,而你不小心调用了它i。或者你不写索引[1],而写[i],等等。

所以,变量的初始化必须尽可能靠近它们第一次被使用的地方,并尽量避免大量的全局变量。这就减少了可能的错误列表。

这与(....)有什么关系?

我很气愤。

如果它说i=0和i++?

那么,在另一个循环中改变i?

它将不会起作用

 
Renat Akhtyamov:

这跟它有什么关系?

我不干了。

你可以在任何地方、任何场合,这是你的权利。你让我解释--我解释了。
 
Alexey Kozitsyn:
你可以在任何地方、任何场合,这是你的权利。你让我解释--我解释了。

这里唯一需要考虑的是,在循环块之后,i已经等于x,只要在循环中i<x

Array[i]在for(...){}之后会返回数组超限的错误,就这样了。