问题是关于 while 循环,其中我需要执行 N 次代码和 N+1 次其他代码。不是关于连接字符串,我只是将其用作错误编码但简短的示例。
让我通过提供一个例子来解释我的问题。
假设我想连接 N+1 个字符串,例如用“\n”粘合它们。那时我会有N+1行文字,但我只需要加N次“\n”。
对于这种类型的循环,是否有任何样板解决方案,您必须在其中执行一些代码 N 次和其他代码 N+1 次?我不是要求连接字符串的解决方案!这只是一个(坏的)例子。我正在寻找通用解决方案。
我遇到的问题是代码重复,所以要编写我的示例,我会这样做(错误的伪代码,我知道我必须使用 StringBuilder 等):
String[] lines = <some array of dimension N+1>;
String total = lines[0];
for (int i = 1; i < N + 1; i++){
total += "\n" + lines[i];
}
当然,如果必须执行 N+1 次的代码变得更大,问题就会变得更糟。然后我会做类似的事情
codeA(); // adding the line of text
for (int i = 1; i < N + 1; i++){
codeB(); // adding the "\n"
codeA();
}
要删除重复项,您也可以通过在循环内部进行检查来做到这一点,但是我发现这很愚蠢,因为我事先知道检查是预先确定的,因为它只会在第一次迭代时为假:
for (int i = 0; i < N + 1; i++){
if (i > 0){
codeB(); // adding the "\n"
}
codeA();
}
是否有任何解决方案,一种使用 codeA() 初始化一次然后继续循环 codeB() 和 codeA() 的 while 循环?
我猜人们以前一定遇到过这种情况。只是想知道是否有任何漂亮的解决方案。