2015-11-23 270 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

这很酷,很简单!谢谢 –