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

Kei*_*ios 5 loops

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

boolean firstRow = true;

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

    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

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

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

kvi*_*sta 5

是的,在开始循环之前进行设置并将其更改为do..while.例如:

if (row = result.next()) {
  //do some setup 
  do {
    //do stuff
  } while (row = result.next());   
}
Run Code Online (Sandbox Code Playgroud)

  • @Keios:你有很好的实践理由吗?"我喜欢*这样做"并不是拒绝更简单解决方案的有效论据. (5认同)
  • 没有其他变量来跟踪,我认为这是不可能的。您需要某种方式来区分状态,并且-在不了解数据的其他信息的情况下-变量(布尔值,计数器等)可能是做到这一点的唯一方法。鉴于您将“设置”与“材料”区分开来,所以对我来说这不是很明显**为什么**想要那样做。 (2认同)