Практическая информатика


         

Рассмотрим на примере итератора for


Рассмотрим на примере итератора for действие указанных конструкций.

for i in 1 .. 5 print i break if i == 3 print "*" endРезультат: 1*2*3
for i in 1 .. 5 print i redo if i == 3 print "*" endРезультат:1*2*33333 ... выполнение цикла не прекращается
for i in 1 .. 5 print i next if i == 3 print "*" endРезультат: 1*2*34*5*
for i in 1 .. 5 print i retry if i == 3 print "*" endРезультат: 1*2*31*2*31*2*... выполнение цикла не прекращается


Пример

Следующая программа начинает повторение цикла сначала, если при вводе указать символ y.

for i in 1 .. 5 print "Now at #{i}. Restart?(y/n) " retry if gets.chop == "y" end

Вот один из возможных вариантов выполнения этой программы:

Now at 1. Restart?(y/n) n Now at 2. Restart?(y/n) y Now at 1. Restart?(y/n) n ...#!/usr/bin/env ruby i=1 while i <= 5 puts i; i += 1 end puts

# еще раз i=1 until i > 5 puts i; i += 1 end puts

3.times do print "Ау! " end puts

0.upto(9) do |x| print x, " " end puts

0.step(12, 3) {|x| print x, " " } # 0 3 6 9 12 puts

[1, 1, 2, 3].each {|k| print k, " " } # 1 1 2 3 puts

for i in ["one", "two", "three"] print i, " " end puts

# то же самое ["one", "two", "three"].each{ |i| print i, " "} puts

for i in 1..5 puts i end puts

for i in 1 ... 6 puts i end puts

print "Введите целое положительное число: " str = gets.chop! # ввели строку num = str.to_i # преобразовали в число if num > 0 i = 1 fact = 1 while i <= num fact *= i i += 1 end puts "Факториал числа #{num} равен #{fact}" else puts "Вы ввели неположительное число" end puts

print "Введите целое положительное число: " num = gets.to_i # строку сразу преобразовали в число if num > 0 fact = 1 for i in 1 .. num fact *= i end puts "Факториал числа #{num} равен #{fact}" else puts "Вы ввели неположительное число" end puts


Содержание  Назад  Вперед