仅在循环中运行if语句一次

时间:2011-01-21 13:42:08

标签: loops

只是好奇它是否可能。 考虑以下代码:

boolean firstRow = true;

while{row = result.next())
{
    if(firstRow)
    {
        firstRow = false;
        //do some setup 
    }

    //do stuff
}

它的伪代码和问题通常不是关于某些特定的编程语言。

我的问题:是否可以编写行为完全相同但不使用其他变量的代码(在本例中为“firstRow”)。在FOR循环中,可以检查计数器变量值,但是让FOR循环离开这个问题。

3 个答案:

答案 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
}

另一种方法是让你的循环尽可能简单,并相信你的编译器的优化器可以进行上面描述的“展开”。如果您将优化选项设置得足够高,它可能会。