Basic Switch Statement. (Control Flows).
Я так поняла, это почти то же самое, что и if, else, elsif. Только в случае с case сюда можно впихнуть больше значений.
Код:
exp = 2
case exp
when 1
print "one"
when 2
print "two"
else
print "not 1 nor 2"
end
Вывод:
two
1. Задаем переменную exp, равную 2.
2. Case exp. Ну, типа, в нашем случае - 2.
3. Опять-таки задаем условие. Когда 1, пишем "один", когда 2, пишем "два". А если не то и не другое, пишем "Не 1 и не 2".
Т.к. у нас exp = 2, вывод у нас получился "two".
Код:
grade = 13
school = case grade
when 0..5
"elementary"
when 6..8
"middle school"
when 9..12
"high school"
else
"college"
end
print "grade #{grade} is in #{school}"
Вывод:
grade 13 is in college
1. Мы задаем переменную grade = 13.
2. Дальше задаем переменную school = case grade. Т.е. school уже равна не просто grade, а обработанному grade. Обработанному с помощью case. Case смотрит, куда входит 13. И думает. Когда 0..5 - выдам "elementary". Но у нас 13. Значит идет дальше. С 6..8 и с 9..12 тоже не подходит. Значит идет в последнюю инстанцию. Если все исключено, значит сюда, в else.
Т.о. на экран выводится Grade 13 (это переменная #{grade} ) is in college (это переменная #{school}).
Я так поняла, это почти то же самое, что и if, else, elsif. Только в случае с case сюда можно впихнуть больше значений.
Код:
exp = 2
case exp
when 1
print "one"
when 2
print "two"
else
print "not 1 nor 2"
end
Вывод:
two
1. Задаем переменную exp, равную 2.
2. Case exp. Ну, типа, в нашем случае - 2.
3. Опять-таки задаем условие. Когда 1, пишем "один", когда 2, пишем "два". А если не то и не другое, пишем "Не 1 и не 2".
Т.к. у нас exp = 2, вывод у нас получился "two".
Код:
grade = 13
school = case grade
when 0..5
"elementary"
when 6..8
"middle school"
when 9..12
"high school"
else
"college"
end
print "grade #{grade} is in #{school}"
Вывод:
grade 13 is in college
1. Мы задаем переменную grade = 13.
2. Дальше задаем переменную school = case grade. Т.е. school уже равна не просто grade, а обработанному grade. Обработанному с помощью case. Case смотрит, куда входит 13. И думает. Когда 0..5 - выдам "elementary". Но у нас 13. Значит идет дальше. С 6..8 и с 9..12 тоже не подходит. Значит идет в последнюю инстанцию. Если все исключено, значит сюда, в else.
Т.о. на экран выводится Grade 13 (это переменная #{grade} ) is in college (это переменная #{school}).
Комментариев нет:
Отправить комментарий