Loops 请帮助我使用这个简单、基本的伪代码
这对你们来说应该很容易,但我还是无法在脑海中想象出来。以下是我想做的:Loops 请帮助我使用这个简单、基本的伪代码,loops,for-loop,selection,if-statement,Loops,For Loop,Selection,If Statement,这对你们来说应该很容易,但我还是无法在脑海中想象出来。以下是我想做的: if (flag) for (i = 0; i < 10; i++) {LARGE_BLOCK_OF_CODE (that visits an array in order)} else for (i = 9; i >= 0; i--) {LARGE_BLOCK_OF_CODE (that visits an array in REVERSE order)} if
if (flag)
for (i = 0; i < 10; i++)
{LARGE_BLOCK_OF_CODE (that visits an array in order)}
else
for (i = 9; i >= 0; i--)
{LARGE_BLOCK_OF_CODE (that visits an array in REVERSE order)}
if(标志)
对于(i=0;i<10;i++)
{按顺序访问数组的\u代码的大\u块\u}
其他的
对于(i=9;i>=0;i--)
{u代码的大块(按相反顺序访问数组)}
问题是这段代码不能放在函数中,我不想复制/粘贴它两次。我有没有办法这样做:
if (flag)
loop = for (i = 0; i < 10; i++);
else
loop = for (i = 9; i >= 0; i--);
loop
{LARGE_BLOCK_OF_CODE (that visits an array in the order specified in 'loop')}
if(标志)
loop=for(i=0;i<10;i++);
其他的
循环=for(i=9;i>=0;i--);
环
{u代码的大块(按“循环”中指定的顺序访问数组)}
??将大的代码块放入函数中,接收命令作为参数。然后在您需要的任意数量的循环中重用它。将大量的代码块放入函数中,接收顺序作为参数。然后在需要的任意数量的循环中重复使用它。为循环的开始和结束创建变量,并创建第三个变量以确定迭代的“方向” 然后让循环运行一段代码。像这样
int iStart = 0;
int iEnd = 9;
int iIncrement = +1;
if (reverse)
{
iStart = 9;
iEnd = 0;
iIncrement = -1;
}
for (i = iStart; i != iEnd; i += iIncrement)
{
//...large block of code here...
}
为循环的开始和结束创建变量,并创建第三个变量来确定迭代的“方向” 然后让循环运行一段代码。像这样
int iStart = 0;
int iEnd = 9;
int iIncrement = +1;
if (reverse)
{
iStart = 9;
iEnd = 0;
iIncrement = -1;
}
for (i = iStart; i != iEnd; i += iIncrement)
{
//...large block of code here...
}
我不知道你的阵型有多大。也许可以生成一个额外的数组,该数组按所需顺序保存所需索引:
indexes = []
for (i = 0; i < 10; i++)
indexes.add(i)
if (!flag)
indexes.reverse()
for each (i in indexes)
{LARGE_BLOCK_OF_CODE}
索引=[]
对于(i=0;i<10;i++)
索引.添加(i)
如果(!标志)
index.reverse()
对于每个(索引中的i)
{u代码的大块}
我不知道您的阵列有多大。也许可以生成一个额外的数组,该数组按所需顺序保存所需索引:
indexes = []
for (i = 0; i < 10; i++)
indexes.add(i)
if (!flag)
indexes.reverse()
for each (i in indexes)
{LARGE_BLOCK_OF_CODE}
索引=[]
对于(i=0;i<10;i++)
索引.添加(i)
如果(!标志)
index.reverse()
对于每个(索引中的i)
{u代码的大块}
嗯,我知道…:p如果不是这样的话,那就太多了
是的,FlipScript的解决方案更好,尽管看起来可能不整洁
嗯,我知道…:p如果不是这样的话,那就太多了
是的,FlipScript的解决方案更好,尽管看起来可能不整洁代码>问题是,如果C或C++可以放置在函数中,那么这个代码块就不能放在函数< /代码>中。唯一的问题是将它放入一个函数需要做多少工作。另一种选择是:将一大块代码放在宏中。这是我一开始想做的,但我最初并没有写那段代码,所以我不想弄乱它,除非在他们指定的范围内。更不用说我大部分都不明白了…>\uu>@UsRels8600 + 1用于解释约束。<代码>问题是,如果C或C++可以放置在函数中,则该代码块不能放置在函数< /代码>中。唯一的问题是将它放入一个函数需要做多少工作。另一种选择是:将一大块代码放在宏中。这是我一开始想做的,但我最初并没有写那段代码,所以我不想弄乱它,除非在他们指定的范围内。更不用说我大部分都不明白了…>\uu>@user486800+1用于解释约束。这是flag=true^时的结果。您必须使用
=代码>不是=
,而是用10
替换9
,我喜欢这个紧凑的版本,但FlipScript精巧的版本解释得更好。谢谢。我也喜欢这个。。。但是,一到两年后,当我不得不重新审视代码并且不记得它是如何工作的时候,它可能会让我头疼。我讨厌学习我自己的代码!这是flag=true^^时的结果。您必须使用=代码>不是=
,而是用10
替换9
,我喜欢这个紧凑的版本,但FlipScript精巧的版本解释得更好。谢谢。我也喜欢这个。。。但是,一到两年后,当我不得不重新审视代码并且不记得它是如何工作的时候,它可能会让我头疼。我讨厌学习我自己的代码!我喜欢。FlipScript的答案对我来说似乎有点简单,但如果另一个方案对我不起作用,这是一个不错的备份方案。谢谢你的洞察力!对。我的第一种方法也和FlipScript类似。但他比我快了2分钟,所以我改成了这个。正如您在他的解决方案中所看到的,要获得正确的结束条件值有点困难。(我想两者都有差距。)但最终它更高效、更直观。另一方面,我的帖子中的解决方案已经为一些非常时髦的循环做好了准备。您甚至可以洗牌索引数组,从而以随机顺序进行迭代。也许只要有人想做,我就会链接到这篇文章。我喜欢。FlipScript的答案对我来说似乎有点简单,但如果另一个方案对我不起作用,这是一个不错的备份方案。谢谢你的洞察力!对。我的第一种方法也和FlipScript类似。但他比我快了2分钟,所以我改成了这个。正如您在他的解决方案中所看到的,要获得正确的结束条件值有点困难。(我想两者都有差距。)但最终它更高效、更直观。另一方面,我的帖子中的解决方案已经为一些非常时髦的循环做好了准备。您甚至可以洗牌索引数组,从而以随机顺序进行迭代。也许只要有人想这样做,我就会链接到这篇文章。我的荣幸,“user486800”。)我的荣幸,“user486800:)此代码块不能放在函数“为什么不?”中此代码块不能放在函数“为什么不?”?