1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
# prints 1..10, var is not controlling the loop
for var in 1..10
puts "var = #{var}"
if var > 5
var = var + 2
end
end
puts '---'
i = 3
x = while i > 0 do
puts i
i = i - 1
end
puts x
puts '---'
i = 3
x = while i > 0 do
puts i
if i == 2 then
eval("break")
end
i = i - 1
end
puts x
puts '---'
i = 3
x = while i > 0 do
puts i
if i == 2 then
eval("break 'foo'")
end
i = i - 1
end
puts x
puts '---'
i = 3
j = 2
x = while i > 0 do
puts i
if i == 2 and j > 0 then
j = j - 1
eval('redo')
end
i = i - 1
end
puts x
puts '---'
def foo
eval('break')
rescue LocalJumpError => e
puts 'A'
end
begin
foo
rescue LocalJumpError => e
puts 'B'
end
puts '---'
def foo2
i = 0
while i < 5 do
eval("
begin
i += 1
puts i
eval('break')
rescue LocalJumpError => e
puts 'A'
end");
end
eval("
begin
i += 1
puts i
eval('break')
rescue LocalJumpError => e
puts 'C'
end");
end
begin
foo2
rescue LocalJumpError => e
puts 'B'
end
puts '---'
x = begin 1; 2; end
puts x
puts '---'
while begin puts 'foo'; break; true; end do
puts 'bar'
end
puts '---'
i = 0
while begin puts 'foo'; redo; puts 'baz'; true; end do
puts i
i += 1
if i == 5 then break end
end
puts '---'
i = 0
while begin puts i; i += 1; next unless i > 5; puts 'baz'; i < 10; end do
puts 'bar'
i += 1
end
puts '---'
i = 0
until begin puts i; i += 1; next unless i > 5; puts 'baz'; i >= 10; end do
puts 'bar'
i += 1
end
|