我想知道是否有人可以建议我如何在以下伪代码中实现此循环:
8:循环
9:当f [0] = 0时 10:对于i = 1到N做
11:f [i¡1] = f [i]
12:c [N + 1-i] = c [N-i]
13:结束为 14:f [N] = 0
15:c [0] = 0
16:k = k + 1
17:结束时 18:如果deg(f)= 0那么
19:转到步骤32
20:结束如果
......... ...... .... 31:结束循环
我的问题是我应该如何实现从第8行开始到31结束的循环;我对8到31行之间的陈述感到满意,但是我在第8行使用了什么样的循环,以及我为循环提供了什么条件?
提前致谢。
答案 0 :(得分:2)
这是一个无限循环。没有条件,只是永远循环。唯一的出路是进入第19步。在类C语言中,您可以将其写为while (true)
或for (;;)
:
for (;;) {
// ...
if (deg(f) == 0) {
goto afterLoop;
}
// ...
}
afterLoop:
// ...
但是,{p> goto
不赞成。最好用goto Step 32
语句替换break
,该语句会立即退出循环:
for (;;) {
// ...
if (deg(f) == 0) {
break;
}
// ...
}
对于它的价值,如果你没有步骤21-30你可以使用do / while循环,其中循环条件位于循环的底部而不是顶部:
do {
// ...
}
while (deg(f) != 0);
如果第18-20行是循环中的最后一行,那将会有效。因为它们不是,所以看起来选项#2是合适的。
答案 1 :(得分:1)
如果您打算详细编写伪代码,您也可以使用目标语言编写代码。伪代码应该是一个更广泛的画笔 - 像这样(与你的代码无关):
for each bank account
check balance as of last month
if balance greater than promotion limit
send out valued customer pack
endif
endfor