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:
But, this code can be simplified by introducing an exception:
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)
No comments:
Post a Comment