0

在以下代码中:

boolean condition=false;

do{
    condition=expression;

    if(condition)
    {
        // subprogram 2
    }

    // subprogram 1

}while(condition1);

我只想执行一次子程序 2(当“条件”从假变为真时,它会在之后保持真),而 do-while 循环继续前进。

有没有办法做到这一点?

4

3 回答 3

3
bool ifStatementRan = false; 
do{
    condition=expression;

    if(condition && !ifStatementRan )
    {
        ifStatementRan = true;
        // subprogram 2
    }

    // subprogram 1

}while(condition1);

您可能希望使用比“ifStatementRan”更具描述性的变量名称来描述 if 语句的作用。

于 2013-10-18T02:48:35.217 回答
0

您可以为子程序 2 使用完成标志。

boolean condition=false;
boolean subProgram2Done = false;

do{
    condition=expression;

    if(condition && subProgram2Done  == false )
    {
    // subprogram 2
    subProgram2Done  = true;
    }

    // subprogram 1

}while(condition);
于 2013-10-18T02:49:43.520 回答
0
boolean JustFirstTime=true;
int x = 0;

while(x < 10){


if(JustFirstTime)
{
    // subprogram 2
    JustFirstTime= false;
}

// subprogram 1
x++;

};
于 2013-10-18T02:53:19.503 回答