2015-11-23 320 views
0

我正在努力與一些邏輯。我有一個嵌套的for循環與裏面的if語句。如果語句嵌套循環邏輯

foreach(object in list) 
foreach(otherObject in otherList) 
    if(object.name == otherObject.name) 
    foo(); 
    break; 
    else 
    bar(); 

這會在每次if語句爲false時做bar()。我如何才能做bar()只有當foo()從來沒有完成?道歉,如果這是一個重複的問題,它有可能是...

+0

如果我正確理解你的問題你的問題是,break語句只留下內,但不是外部循環。這通常是出現嵌套循環結構的罕見情況之一。 – nv3

+0

@ nv3謝謝你。雖然這不是我所問的問題,但我並不知道goto的功能。這也將幫助我:) –

回答

1

你可以只使用一個標誌:

did_foo = false; 

foreach(object in list) 
foreach(otherObject in otherList) 
    if(object.name == otherObject.name) 
    foo(); 
    did_foo = true; 
    break; 

if (!did_foo) 
    bar(); 
+1

這很酷,很簡單!謝謝 –