Print out numbers of increasing distance from center value in Python
Rather than maintaining the state of the iteration using three variables val, i, and neg_toggle, it would be more elegant to write a generator.  Then, the state of the iteration would be maintained by the flow of the execution of the generator itself.

def zoom_out(center):
    decr = center
    incr = center + 1
    while True:
        yield decr
        decr -= 1
        yield incr
        incr += 1

for n in zoom_out(24):
    if n in (30, 50, 90):
        break
    print(n)


Furthermore, fancy iteration can often be expressed more elegantly using itertools.  Here, I'd take advantage of itertools.count() to implement the generator, and itertools.takewhile() to detect when to stop executing the infinite generator.

from itertools import count, takewhile

def zoom_out(center):
    decr = count(center, -1)
    incr = count(center + 1)
    while True:
        yield next(decr)
        yield next(incr)

for n in takewhile(lambda n: n not in (30, 50, 90), zoom_out(24)):
    print(n)