2.9 ruby的控制结构

作者: 808cb3be8e58 | 来源:发表于2018-12-17 22:55 被阅读0次

1、条件判断语句

(1)if 如果case1条件为true,则执行code1(执行完case1,条件判断语句结束,不会再去判断case2条件是否为true)。如果case1条件为false,接着判断case2条件,若为true,执行code2,若为false,则执行else子句中的code3。
#需要注意的是elsif,不是elseif
if case1
  code1...
elsif case2
  code2...
else
  code3...
end*

举例:

#定义一个变量,赋值为6
irb(main):034:0> i = 6
=> 6
#i的值为6,满足第一个条件,则执行puts "我是#{i},我大于1",之后的条件即使符合也不会再判断
irb(main):035:0> if i > 1
irb(main):036:1>   puts "我是#{i},我大于1"
irb(main):037:1> elsif i > 3
irb(main):038:1>   puts "我是#{i},我大于3"
irb(main):039:1> elsif i > 5
irb(main):040:1>   puts "我是#{i},我大于5"
irb(main):041:1> else
irb(main):042:1*   puts "我是#{i},我以上条件都不符合"
irb(main):043:1> end
我是6,我大于1

只有一条语句判断时,也可以将if语句写成一行

irb(main):046:0> puts "hello,我在输出" if 2>1
#当if后面的条件语句为true时,执行if前面的语句
hello,我在输出
=> nil
#当if后面的条件语句为false时,不执行前面的语句
irb(main):047:0> puts "条件为false" if 2<1
=> nil
(2)unless 如果case1条件为false,则执行code1,如果为true,不执行,刚好与if语句相反。
unless case1
  code1...
end

举例:

irb(main):048:0> unless 1 > 2
irb(main):049:1>   puts "hello,当条件语句为fasle时,我应该输出"
irb(main):050:1> end
hello,当条件语句为fasle时,我应该输出

2、循环语句

(1)while 如果case1为true,code1会循环执行若干次,直到case1为false时停止循环。case1不能一直为true,不然会形成死循环。
while case1
  code1...
end

举例:

irb(main):056:0> i = 0
=> 0
irb(main):057:0> while i < 5
irb(main):058:1>   puts "输出数字:#{i}"
irb(main):059:1>   i += 1
irb(main):060:1> end
输出数字:0
输出数字:1
输出数字:2
输出数字:3
输出数字:4
=> nil
(2)for...in 后面跟一个范围或者数组,相当于遍历数组,
irb(main):064:0> for i in 0..4
irb(main):065:1>   puts "i的值为#{i}"
irb(main):066:1> end
i的值为0
i的值为1
i的值为2
i的值为3
i的值为4
=> 0..4

相当于下面的表达式,在ruby中一般用each方法,for...in用法了解一下即可

irb(main):073:0> (0..4).each do |i|
irb(main):074:1*   puts "i的值为#{i}"
irb(main):075:1> end
i的值为0
i的值为1
i的值为2
i的值为3
i的值为4
=> 0..4

(3)break、next

  • break跳出循环
  • next跳过本次循环,进入下一次循环
#当i = 3时,会进入if,执行break语句跳出循环,下面的语句不会执行
irb(main):076:0> for i in 0..4
irb(main):077:1>   if i == 3
irb(main):078:2>     break
irb(main):079:2>   end
irb(main):080:1>   puts "i的值为#{i}"
irb(main):081:1> end
i的值为0
i的值为1
i的值为2
#当i = 3时,会进入if,执行next语句跳过本次循环,进入下一次循环,所以不会输出“i的值为3
irb(main):088:0> for i in 0..4
irb(main):089:1> if i == 3
irb(main):090:2>     next
irb(main):091:2>   end
irb(main):092:1>   puts "i的值为#{i}"
irb(main):093:1> end
i的值为0
i的值为1
i的值为2
i的值为4
=> 0..4
#每次循环数字会加1,当i = 3时,先执行完puts语句,再进行if语句的判断。符合大于2的条件,执行break跳出循环。
irb(main):002:0> while i < 5
irb(main):003:1> puts "输出数字:#{i}"
irb(main):004:1> if i > 2
irb(main):005:2> break
irb(main):006:2> end
irb(main):007:1> i += 1
irb(main):008:1> end
输出数字:0
输出数字:1
输出数字:2
输出数字:3

相关文章

  • 2.9 ruby的控制结构

    1、条件判断语句 (1)if 如果case1条件为true,则执行code1(执行完case1,条件判断语句结束,...

  • Ruby 语句与控制结构

    迭代器和可枚举对象 迭代器的描述并不准确,像”期待一个关联代码块的方法“这样的描述更加准确一些。迭代器是 Ruby...

  • Ruby for 语句

    for 并不是方法, 而是 Ruby 提供的循环控制语句.下面是 for 语句的典型示例: for 结构1 上述是...

  • 《ruby 教程》ruby初探

    执行 ruby ruby 文件 控制台用 ruby 执行文件($代表控制台执行,不是命令) 直接在控制台打开 ru...

  • Ruby基础学习笔记

    目录 Ruby的基本概念Ruby的控制语句Ruby的循环Ruby的数组与散列 Ruby的基本概念 运行Ruby的方...

  • Ruby/Elixir学习小记

    Ruby 一切皆对象有点不习惯,3.times, 5.each什么的……把控制结构写成这样阅读是很顺畅不过有点反码...

  • Java入门到放弃--第四课--控制结构

    1、控制结构概述控制结构是控制程序如何运行的特殊的语句结构。控制结构可以分为:顺序控制结构,分支控制结构和循环控制...

  • From Objective-C to Ruby(1)-流程控制

    流程控制 判断 if···elsif···else··· OC: ruby: 三目运算符 OC: ruby: ca...

  • Perl语言学习(四)Perl控制结构

    四、Perl控制结构 1、if控制结构 控制结构是逻辑实现的基石 三种基本的控制结构 if结构是程序最基本的控制结...

  • Ruby元编程(蛋人)

    01 Ruby元编程介绍和使用场景02 Ruby的类结构03 Singleton Method单例方法以及supe...

网友评论

    本文标题:2.9 ruby的控制结构

    本文链接:https://www.haomeiwen.com/subject/wsgckqtx.html