条件判断,在编程语言中都存在,而Ruby中的条件判断和Java中类似,当然还是存在些许差别

Ruby中条件判断的条件:

1) 可以使用 ==,<,>等比较运算来作为条件,比较运算可以返回true和false,这和java中的语法是类似的

2) 一些其他的方法也可以用来作为判断条件,比如,empty?方法,为空则返回true,否则返回false

3) 有些方法虽然不会返回true或false,但是也能作为条件判断的条件,他们返回的对象,要么是false或nil,要么是意义的对象,则可根据如下表格判断:

TRUE FALSE
false和nil以外的对象 false与nil

p /Ruby/ =~ "Ruby"  返回0,则在条件判断中可以返回true

Ruby中也可以使用常用的逻辑运算符,&&,||,!,其代表的意义与JAVA中的意义是一致的。

Ruby中的条件判断语句:

1. if 语句

=begin
语法:
if 条件1 then
语句1
elsif 条件2 then
语句2
elsif 条件3 then
语句3
else
语句4
end
=end a = 10
b = 20
if a>b then
print "a is smaller than b."
elsif a == b then
print "a equals b."
else
print "a is larger than b."
end

2. unless 语句,其恰好与if语句相反,当条件不符合时,则执行相应语句

=begin
语法:
unless 条件 then
语句
end
=end a = 10
b = 20
unless a>b then
print "a is smaller than b."
end # -> "a is smaller than b" will be printed out.

3. case 语句
当同一个对象,要与多个值进行比较时,可以使用case语句,其功能与JAVA中的switch语句类似

=begin
语法:
case 想要比较的对象
when 值1 then
语句1
when 值2 then
语句2
when 值3 then
语句3
else
语句4
end
# then是可以省略的
=end array = ["aa", 1, nil]
item = array[0]
case item
when String
puts "item is a String."
when Numeric
puts "item is a Numeric."
else
puts "item is a something"
end
#这里比较的是对象的类型,而不是对象的值

PS:
if修饰符和unless修饰符可以写在执行语句后面,例如,print "a is larger than b." if a>b,所以ruby是很灵活的。

"==="符号的意义,其在不同的场合可以代表不同的符号,若左边是数字或字符串时,则和"=="是一样的;在正则表达式的场合下则相当于"=~";在类的场合下,判断"==="右边的对象是否是类的实例

p ((1..3) === 2)  #-> true
p /zz/ === "zyzzy" #-> 2
p String === "xyzzy" # -> true #在case表达与if语句间转换,用===,符号左边是case的值,右边为case的变量
case A
when value1 if value1 === A
语句1 语句1
when value2 elsif value2 === A
语句2 语句2
else else
语句3 语句3
end end

Ruby自学笔记(五)— 条件判断的更多相关文章

  1. SHELL学习笔记----IF条件判断,判断条件

    SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外.  if list then           do something here   ...

  2. Ruby自学笔记(二)— Ruby的一些基础知识

    Ruby安装好之后,我们就可以来实践Ruby语言了. 以下是一些学习到的简单基础知识: 1. 如何执行Ruby文件? 我们编写的Ruby文件是以rb为后缀名的,例如:XXX.rb.当要执行ruby文件 ...

  3. Python学习笔记五--条件和循环

    5.1 if语句 没什么好说,if语句语法如下: if expression: expr_true_suit 5.1.1多重条件表达式 单个if语句可以通过布尔操作符and,or,not实现多重条件判 ...

  4. Ruby自学笔记(六)— 循环

    循环结构在编程语言中是不可或缺的,所以Ruby中的循环也有其自定义的规则. 而我们关注循环结构,要知道两个因素:1) 循环的条件:2) 循环执行的内容 Ruby有一些方式来实现循环结构体: 1. ti ...

  5. Ruby自学笔记(一)— 基本概况

    之前一直想要多看看RESTful Service相关的东西,找到一本相关的书,但是里面的代码都是用Ruby写的,虽然知道编程语言都是类似的,但是看到一些陌生的语法,还是有些摸不着头脑,所以最近终于下定 ...

  6. vue学习笔记(五)条件渲染和列表渲染

    前言 在众多的编程语言中,我们的基础语法总是少不了一些专业语法,比如像定义变量,条件语句,for循环,数组,函数等等,vue.js这个优秀的前端框架中也有同样的语法,我们换一个名词,将条件语句改成专业 ...

  7. Ruby自学笔记(四)— 数组,Hash,正则表达式简介

    今天学习的是数组和Hash,数组在很多编程语言中都能常常用到. 数组: 数组是存储数据的一种容器,在Ruby中,数组中存储的数据可以是任何类型的数据:这和JAVA不同,在JAVA中,数组是存储同一类型 ...

  8. Ruby自学笔记(三)— 方法Method

    Ruby做为面向对象语言,肯定要对对象进行相关的操作,这时候就涉及到方法了. 调用方法 - 对象.方法名(实参1,实参2,...,实参n) 方法的分类: 1. 实例方法:顾名思义,就是由实例来调用的方 ...

  9. webpack4 自学笔记五(tree-shaking)

    全部的代码及笔记都可以在我的github上查看, 欢迎star: https://github.com/Jasonwang911/webpackStudyInit/tree/master/ThreeS ...

随机推荐

  1. LINQ 从 CSV 文件生成 XML

    本文参考:http://msdn.microsoft.com/zh-cn/library/bb387090.aspx 下面的代码对字符串数组执行 LINQ 查询. 在 C# 版本中,该查询使用 let ...

  2. 最新Connectify注冊码(序列号) Connectify3.7序列号 破解版

    Connectify序列号.最新注冊码 今天给大家公布一个Connectify最新版的序列号(注冊码) 今天给大家公布一个Connectify最新版的序列号(注冊码) 经本人測试该注冊码为最新版Con ...

  3. 字符串匹配之KMP---全力解析

    近日,一同学面试被问到字符串匹配算法,结果因为他使用了暴力法,直接就跪了(如今想想这种面试官真的是不合格的,陈皓的一篇文章说的非常好,点击阅读).字符串匹配方法大概有:BF(暴力破解法), 简化版的B ...

  4. mysql函数count(*)和count(column)的区别(转)

    mysql中count(*)和count(column)使用是有区别的: count(*)对行的数目进行计算,包含NULL count(column)对特定的列的值具有的行数进行计算,不包含NULL值 ...

  5. Tomcat7.0.40 基于DataSourceRealm的和JDBCRealm的资源用户访问控制

    软件版本: Tomcat 7.0.40 Mysql: 5.1 Host: CentOS 6.3 64bit 使用JDBCRealm (Tomcat 会使用所给的JDBC Connecter 自己去连M ...

  6. [转] Node.js 服务端实践之 GraphQL 初探

    https://medium.com/the-graphqlhub/your-first-graphql-server-3c766ab4f0a2#.n88wyan4e 0.问题来了 DT 时代,各种业 ...

  7. 理解JavaScript的定时器与回调机制

    定时器方法 JavaScript是单线程的.虽然HTML5已经开始支持异步js了. JavaScript的setTimeout与setInterval看起来就像已经是多线程的了.但实际上setTime ...

  8. (转)Linux内核之进程和系统调用

    Linux内核之进程和系统调用 什么是系统调用 在Linux的世界里,我们经常会遇到系统调用这一术语,所谓系统调用,就是内核提供的.功能十分强大的一系列的函数.这些系统调用是在内核中实现的,再通过一定 ...

  9. android 简单的开机自启

    今天我们主要来探讨android怎么让一个service开机自动启动功能的实现.Android手机在启动的过程中会触发一个Standard Broadcast Action,名字叫android.in ...

  10. MVC中javascript直接调用Model

    最近做一个统计页面, Model从后台已经获取了数据集合,想直接在前台展示,而这个展示是需要用js生成图表的. 控制器部分代码: public ActionResult Index() { var m ...