只是好奇它是否可能。 考虑以下代码:
boolean firstRow = true;
while{row = result.next())
{
if(firstRow)
{
firstRow = false;
//do some setup
}
//do stuff
}
它的伪代码和问题通常不是关于某些特定的编程语言。
我的问题:是否可以编写行为完全相同但不使用其他变量的代码(在本例中为“firstRow”)。在FOR循环中,可以检查计数器变量值,但是让FOR循环离开这个问题。
答案 0 :(得分:5)
是的,在开始循环之前进行设置并将其更改为do..while。例如:
if (row = result.next()) {
//do some setup
do {
//do stuff
} while (row = result.next());
}
答案 1 :(得分:0)
if(row = result.next())
{
//do some setup
while(row)
{
//do stuff
row = result.next();
}
}
答案 2 :(得分:0)
嗯,有一些选择。第一种方法是将“设置”代码移到循环外部。如果你不在乎这会导致设置发生,即使你从不迭代,这可能是最好的选择。如果您做关心这一点,您可以将循环条件添加到if检查。
if(row = result.next())
{
//do some setup
}
for (;row;row=result.next())
{
//do stuff
}
另一种方法是让你的循环尽可能简单,并相信你的编译器的优化器可以进行上面描述的“展开”。如果您将优化选项设置得足够高,它可能会。