2013-10-18 43 views
0

在下面的代碼:執行的代碼行只有一次,在一個循環的條件變化

boolean condition=false; 

do{ 
    condition=expression; 

    if(condition) 
    { 
     // subprogram 2 
    } 

    // subprogram 1 

}while(condition1); 

我想只有一次執行子程序2(當從虛假到真實的「條件」的變化,它仍將真正的事後)而do-while循環不斷前進。

有沒有辦法做到這一點?

+0

添加'break'退出循環。如果你不想退出循環,請設置一個標誌。 –

+0

我不想退出循環。 如何添加標誌? –

回答

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

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

    // subprogram 1 

}while(condition1); 

您可能希望使用比「ifStatementRan」更多的描述性變量名來描述if語句正在做什麼。

+0

正是我需要的,謝謝特里。 –

0

您可以使用完成標誌用於子程序2.

boolean condition=false; 
boolean subProgram2Done = false; 

do{ 
    condition=expression; 

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

    // subprogram 1 

}while(condition); 
0
boolean JustFirstTime=true; 
int x = 0; 

while(x < 10){ 


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

// subprogram 1 
x++; 

};