新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 20 1...131415161718192021222324252627...1953 新评论 [删除] 2016.11.29 10:51 #191 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++ ){}...是的,而你写的设计根本就不能用。 Renat Akhtyamov 2016.11.29 10:53 #192 Artyom Trishkin: 每个变量都有自己的范围。即使在大括号内,在该范围内声明的变量也有一个单独的范围--在大括号内。那么,我为什么要在程序的不同地方创建不同名称的循环索引变量,如果我知道它们不会重叠,而且使用 "i "这样的变量名称就足够了,而且是习惯性的。我没有和你争论。 Artyom Trishkin 2016.11.29 10:54 #193 Renat Akhtyamov:for(int i=1; int i<int n; int i++) ... 对吗?不客气。 你自己也意识到,你故意编造了一个理智的程序员都不会编造的坏例子。 Renat Akhtyamov 2016.11.29 10:54 #194 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++ ){}... Artyom Trishkin 2016.11.29 10:55 #195 Renat Akhtyamov:我不是在和你争论。 这是我的主题。而在我给出不好的、次优的建议时,我有权纠正对方。就眼下的情况而言,你是在给出错误的建议。 Renat Akhtyamov 2016.11.29 10:57 #196 Artyom Trishkin: 这是我的主题。而在给出不良的次优建议时,我有权纠正对方。你,就目前的情况而言,是在提出错误的建议。你的主题,然后仔细阅读,并将该帖子与你所回复的昵称联系起来。简而言之,你来错地方了。 [删除] 2016.11.29 10:59 #197 Renat Akhtyamov:但这有什么意义?请分享你的经验--在这种情况下可能会出现什么问题,即如果你的代码会是这样的?int i;for( i = 0; i < x; i++ ){}for( i = 0; i < x; i++ ){}...当你在循环外初始化一个计数器时,它的范围会延伸到循环之外,这通常是不需要的。因此,你为可能的错误提供了肥沃的土壤,例如,如果在代码中你将有一个变量j,而你不小心调用了它i。或者你不写索引[1],而写[i],等等。所以,变量的初始化必须尽可能靠近它们第一次被使用的地方,并避免大量的全局变量。这就减少了可能的错误列表。 Renat Akhtyamov 2016.11.29 11:01 #198 Alexey Kozitsyn:当你在循环外初始化一个计数器时,它的范围会超出循环,这通常是没有必要的。通过这样做,你为可能的错误提供了肥沃的土壤,例如,如果再往下看,你有一个变量j,而你不小心调用了它i。或者你不写索引[1],而写[i],等等。所以,变量的初始化必须尽可能靠近它们第一次被使用的地方,并尽量避免大量的全局变量。这就减少了可能的错误列表。这与(....)有什么关系?我很气愤。如果它说i=0和i++?那么,在另一个循环中改变i?它将不会起作用 [删除] 2016.11.29 11:03 #199 Renat Akhtyamov:这跟它有什么关系?我不干了。 你可以在任何地方、任何场合,这是你的权利。你让我解释--我解释了。 Renat Akhtyamov 2016.11.29 11:05 #200 Alexey Kozitsyn: 你可以在任何地方、任何场合,这是你的权利。你让我解释--我解释了。这里唯一需要考虑的是,在循环块之后,i已经等于x,只要在循环中i<xArray[i]在for(...){}之后会返回数组超限的错误,就这样了。 1...131415161718192021222324252627...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
...
不,我是说。
{
}
for( int i = 0; i < x; i++ )
{
}
...
是的,而你写的设计根本就不能用。
每个变量都有自己的范围。即使在大括号内,在该范围内声明的变量也有一个单独的范围--在大括号内。那么,我为什么要在程序的不同地方创建不同名称的循环索引变量,如果我知道它们不会重叠,而且使用 "i "这样的变量名称就足够了,而且是习惯性的。
我没有和你争论。
...
不,我是说。
{
}
for( int i = 0; i < x; i++ )
{
}
...
有何意义?请分享你的经验--在这种情况下,即如果你的代码是这样的,可能会有什么问题?
for( i = 0; i < x; i++ )
{
}
for( i = 0; i < x; i++ )
{
}
...
我不是在和你争论。
这是我的主题。而在给出不良的次优建议时,我有权纠正对方。你,就目前的情况而言,是在提出错误的建议。
你的主题,然后仔细阅读,并将该帖子与你所回复的昵称联系起来。
简而言之,你来错地方了。
但这有什么意义?请分享你的经验--在这种情况下可能会出现什么问题,即如果你的代码会是这样的?
for( i = 0; i < x; i++ )
{
}
for( i = 0; i < x; i++ )
{
}
...
当你在循环外初始化一个计数器时,它的范围会延伸到循环之外,这通常是不需要的。因此,你为可能的错误提供了肥沃的土壤,例如,如果在代码中你将有一个变量j,而你不小心调用了它i。或者你不写索引[1],而写[i],等等。
所以,变量的初始化必须尽可能靠近它们第一次被使用的地方,并避免大量的全局变量。这就减少了可能的错误列表。
当你在循环外初始化一个计数器时,它的范围会超出循环,这通常是没有必要的。通过这样做,你为可能的错误提供了肥沃的土壤,例如,如果再往下看,你有一个变量j,而你不小心调用了它i。或者你不写索引[1],而写[i],等等。
所以,变量的初始化必须尽可能靠近它们第一次被使用的地方,并尽量避免大量的全局变量。这就减少了可能的错误列表。
这与(....)有什么关系?
我很气愤。
如果它说i=0和i++?
那么,在另一个循环中改变i?
它将不会起作用
这跟它有什么关系?
我不干了。
你可以在任何地方、任何场合,这是你的权利。你让我解释--我解释了。
这里唯一需要考虑的是,在循环块之后,i已经等于x,只要在循环中i<x
Array[i]在for(...){}之后会返回数组超限的错误,就这样了。