【发布时间】:2014-04-29 08:48:30
【问题描述】:
在下面的示例中,使用从 for 循环到 while 循环的转换,// fixed block 可以是任何有效的代码块,前提是您可以在 while 循环之前或之后添加任何其他代码块?
for (int i = 0; i < 10; i++) {
// fixed block
}
int i = 0;
while (i < 10) {
// any block
// fixed block
// any block
}
为了表明答案可能不是简单的“是”,我想到了一个可能是反例的代码块:
for (int i = 0; i < 10; i++) {
i = i * 2;
if (1 < 2) {
print(i);
continue;
}
}
if 语句在那里,因此在 while 循环中,您可以在 continue; 语句之后添加一段代码,而不会出现可能的编译器错误/警告。 for循环的输出是0、2、6和14。在while循环的固定代码块之前或之后添加i++;都不起作用,说明答案可能并不简单。
【问题讨论】:
-
@PaulG:你在说什么?
for (int i = 0; i < 0; i++);. -
你的问题已经演变成一个全新的问题,不再清晰。
-
进化成全新的?问题没有改变。我可以理解这个问题可能不清楚,但很抱歉,我想不出更好的方式来呈现它。是的,我确实在帖子末尾提出了两个问题,但第一个问题只是引出了原始问题。我担心如果我不举例子问这个问题,人们会盲目地回答“是”。提出的反例的重点是表明答案并非微不足道。我认为这个例子让人们无法直接解决这个问题,但我也认为排除它会更糟。
标签: loops for-loop while-loop continue