一、条件语句
- 1. if else
-
1 a = 1 2 if a > 0 then 3 p "a > 0" 4 elsif a == 0 then 5 p "a = 0" 6 else 7 p "a < 0" 8 end
- then 关键字可以不写
-
2.unless
-
-
1 a = 1 2 unless a > 0 then 3 p "a <= 0" 4 else 5 p "a > 0"end
- then 关键字同样可以不写
- 逻辑上需要注意,unless可以翻译成”如果不“,就是unless后边的条件是false,就执行接下来的代码;如果是true,就执行else后边的代码。可能if用多了,总感觉有点别扭。
-
3. case
-
-
1 a = -1 2 case a 3 when 0 4 p "a = 0" 5 when 1 ..2 6 p "a = 1 || a =2" 7 else 8 p "a != 0 && a != 1" 9 end
-
-
- when 的后面同样可以跟着then,和其他语言的case语句差不多
- 注意when后面的条件可以是一个范围,判断的时候是 variable == value1 || variable ==value2 这种逻辑
二、循环语句
1. for
-
- 这里的i可以理解成计数器,意思就是循环3次。还记得C风格的for循环吧:for(int i=0; i<=2; ++i){}其实i也是用来控制执行次数
-
-
1 for i in 0..2 2 p i 3 end 4 #output: 0,1,2
-
另外也可以灵活地用于读取数组数据,如果用过C#的,相当于foreach的作用
-
-
1 a = ['a','b','c'] 2 for char in a 3 p char 4 end 5 #output: "a" "b" "c"
-
ruby的数组类有一个each方法可以起到同样的作用,用法:
-
-
1 a.each do |e| 2 p e 3 end
-
2. times
很直观,就是:执行次数.times,用法:
-
-
1 i = 0 2 3.times do 3 p i 4 i += 1 5 end 6 #output: 0, 1, 2
-
3. while
-
-
1 i = 0 2 while i < 3 do 3 p i 4 i += 1 5 end 6 #output: 0, 1, 2
-
4. loop
-
-
- 无条件循环
-
-
-
1 i = 2 2 loop do 3 if i < 0 4 break 5 end 6 p i 7 i -= 1 8 end 9 #output: 2,1,0
-
5. until
-
-
-
1 i = 0 2 begin 3 p i 4 i += 1 5 end until i >2 6 #output: 2,1,0
-
-
6. next
在满足条件时跳出本次循环,直接进行下一次迭代。类型C++中的continue
-
-
1 for i in 0..2 2 if i == 1 3 next 4 end 5 p i 6 end 7 #output 0,2
-