条件判断,在编程语言中都存在,而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 语句

  1. =begin
  2. 语法:
  3. if 条件1 then
  4. 语句1
  5. elsif 条件2 then
  6. 语句2
  7. elsif 条件3 then
  8. 语句3
  9. else
  10. 语句4
  11. end
  12. =end
  13.  
  14. a = 10
  15. b = 20
  16. if a>b then
  17. print "a is smaller than b."
  18. elsif a == b then
  19. print "a equals b."
  20. else
  21. print "a is larger than b."
  22. end

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

  1. =begin
  2. 语法:
  3. unless 条件 then
  4. 语句
  5. end
  6. =end
  7.  
  8. a = 10
  9. b = 20
  10. unless a>b then
  11. print "a is smaller than b."
  12. end
  13.  
  14. # -> "a is smaller than b" will be printed out.

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

  1. =begin
  2. 语法:
  3. case 想要比较的对象
  4. when 1 then
  5. 语句1
  6. when 2 then
  7. 语句2
  8. when 3 then
  9. 语句3
  10. else
  11. 语句4
  12. end
  13. # then是可以省略的
  14. =end
  15.  
  16. array = ["aa", 1, nil]
  17. item = array[0]
  18. case item
  19. when String
  20. puts "item is a String."
  21. when Numeric
  22. puts "item is a Numeric."
  23. else
  24. puts "item is a something"
  25. end
  26. #这里比较的是对象的类型,而不是对象的值

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

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

  1. p ((1..3) === 2) #-> true
  2. p /zz/ === "zyzzy" #-> 2
  3. p String === "xyzzy" # -> true
  4.  
  5. #在case表达与if语句间转换,用===,符号左边是case的值,右边为case的变量
  6. case A
  7. when value1 if value1 === A
  8. 语句1 语句1
  9. when value2 elsif value2 === A
  10. 语句2 语句2
  11. else else
  12. 语句3 语句3
  13. 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. hive UDAF源代码分析

    sss /** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license a ...

  2. 使用Morphia框架操作mongodb

    1.  mac 下 安装mongodb sudo brew update sudo brew install mongodb sudo brew services mongodb start 2.   ...

  3. Android摄像头抓取图像的格式

    android.hardware.Camera.PreviewCallback /** * Callback interface used to deliver copies of preview f ...

  4. MVC系列之开始

     4月5号晚本来应该写出来的,这几天迷上了炉石传说,打得有点疯,明天又得上班了,收拾心情还是得写出来.上星期5晚上回家的时候,不得不吐槽一下的确有点背.6点下班冲去江夏地铁站,赶7点15分到江门的轻轨 ...

  5. ||和 && 符号的赋值运用(转)

    javascript “||”.“&&”的灵活运用 博客分类: Jquery javascript javascript中运用“||”.“&&”javascript 真 ...

  6. mysql优化21条

    今天一个朋友向我咨询怎么去优化 MySQL,我按着思维整理了一下,大概粗的可以分为21个方向. 还有一些细节东西(table cache, 表设计,索引设计,程序端缓存之类的)先不列了,对一个系统,初 ...

  7. C++中的术语

    1 声明式:所谓声明式是告诉编译器某个东西的名称和类型,但忽略细节.下面都是声明式: extern int x; //对象(object)声明式 记住:变量的声明加extern关键字 std::siz ...

  8. Qss

    *{ font-size:13px; color:white; font-family:"宋体"; } CallWidget QLineEdit#telEdt { font-siz ...

  9. IOS-AssetsLibrary(相册)框架介绍

    AssetsLibrary框架介绍: AssetsLibrary框架包含了ALAssetsLibrary,ALAssetsGroup,ALAsset,ALAssetsFilter,ALAssetRep ...

  10. 基于GPUImage的实时美颜滤镜

    1.背景 前段时间由于项目需求,做了一个基于GPUImage的实时美颜滤镜.现在各种各样的直播.视频App层出不穷,美颜滤镜的需求也越来越多.为了回馈开源,现在我把它放到了GitHub https:/ ...