当条件在循环中发生变化时,仅执行一行代码

时间:2013-10-18 02:45:15

标签: java if-statement do-while

在以下代码中:

boolean condition=false;

do{
    condition=expression;

    if(condition)
    {
        // subprogram 2
    }

    // subprogram 1

}while(condition1);

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

有办法吗?

3 个答案:

答案 0 :(得分:3)

bool ifStatementRan = false; 
do{
    condition=expression;

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

    // subprogram 1

}while(condition1);

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

答案 1 :(得分:0)

您可以对子程序2使用完成标记。

boolean condition=false;
boolean subProgram2Done = false;

do{
    condition=expression;

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

    // subprogram 1

}while(condition);

答案 2 :(得分:0)

boolean JustFirstTime=true;
int x = 0;

while(x < 10){


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

// subprogram 1
x++;

};