Goto is a shunned construct in modern programming languages, but occasionally there is a case where it makes sense, such as breaking-out from a set of nested for statements when a solution is found.  But, modern programming languages contain a better construct for such cases---exceptions.  For example, say we are trying to find an item from each of three sets which jointly satisfy some criterion.  A naive implementation might look like:
foundMatch = False
for item1 in set1:
    for item2 in set2:
        for item3 in set3:
            if satisfiesCriterion(item1, item2, item3):
                foundMatch = True
                break
        if foundMatch:
            break
    if foundMatch:
        break
try:
    for item1 in set1:
        for item2 in set2:
            for item3 in set3:
                if satisfiesCriterion(item1, item2, item3):
                    raise FoundMatch()
except FoundMatch:
    pass
Wednesday, January 26, 2011
Using exceptions for goto
Subscribe to:
Post Comments (Atom)
 

 
 Posts
Posts
 
 
No comments:
Post a Comment