# 控制语句
每个编程语言都必须有控制语句,Ruby也不例外。Ruby中的控制语句包含下面几种:
- 条件选择语句 (if/ case)
- 循环语句 (while/ for/ until)
- 迭代语句 (each)
### 条件选择语句 (if/ case)
~~~
x=1
if x > 2
puts "x is greater than 2"
elsif x <= 2 and x!=0
puts "x is 1"
else
puts "I can't guess the number"
end
~~~
通过上面例子,基本可以了解if语句的用法了。和其他语言没什么两样。不过在Ruby中,如果你的条件只有一重,可以使用下面的格式,也叫if修饰符:
~~~
word = 'world'
puts "hello #{word}" if word
#=> "hello world"
~~~
上面的两段代码中,if后面只要跟表示true的表达式,就可以执行if分支,否则就执行其他if分支,比如elsif,或else分支。。
### 循环语句 (while/ for/ until)
直接看例子吧:
~~~
@i = 0;
num = 5;
while @i < num do
puts("Inside the loop i = #@i" );
@i +=1;
end
~~~
while循环语句,上面的代码中有一段:
~~~
puts("Inside the loop i = #@i" );
~~~
这句中的#@i 实际上是#{@i},在变量为非本地变量情况下,Ruby允许你省略{}。
~~~
$i = 0;
$num = 5;
begin
puts("Inside the loop i = #$i" );
$i +=1;
end while $i < $num
~~~
可以使用begin...end while语句,类似于其他语言的do...while。
until语句:
~~~
$i = 0;
$num = 5;
until $i > $num do
puts("Inside the loop i = #$i" );
$i +=1;
end
~~~
跟while的条件相反才执行。
for语句:
~~~
for i in 0..5
puts "Value of local variable is #{i}"
end
~~~
### 迭代语句 (each)
each是我们最常用的迭代语句,一般都用它来替代循环语句。
~~~
[1, 2, 3].each do |i|
puts i
end
~~~
这里涉及到do...end代码块,我们下节会讲到这个概念。
- 序
- Chapter 1: 初识Chef
- 一些背景
- Chef vs Puppet
- Chapter 2: Chef应用
- Chef架构
- Chef能做什么
- Chef组件
- Chef环境安装
- chef-server
- opscode-chef
- chef-solo
- Chef实战
- 实战前的必修理论
- 使用Chef
- Chapter 3: Ruby基础
- 对象与方法
- 标识符
- 类与模块
- 数据类型
- 真与假
- 控制语句
- 代码块
- Chapter 4: Chef源码架构
- Rubygems与gem
- bundler
- Chef源码组织
- Chapter 5: Rails基础
- Rails是什么
- MVC架构
- Restful
- Rails组成与项目结构
- Chapter 6: Chef Server WebUI
- Chef Server Webui组织结构
- Chef Rest API
- 参考