在以下代码中:
boolean condition=false;
do{
condition=expression;
if(condition)
{
// subprogram 2
}
// subprogram 1
}while(condition1);
我想只执行一次子程序2(当“条件”从false变为true时,之后它将保持为真),而do-while循环继续前进。
有办法吗?
答案 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++;
};