Ruby 判断

  Ruby 提供了其他现代语言中很常见的条件结构。在这里,我们将解释所有的条件语句和 Ruby 中可用的修饰符。

  Ruby if...else 语句

  语法

  if conditional [then]

  code...

  [elsif conditional [then]

  code...]...

  [else

  code...]

  end

  if 表达式用于条件执行。值 false 和 nil 为假,其他值都为真。请注意,Ruby 使用 elsif,不是使用 else if 和 elif。

  如果 conditional 为真,则执行 code。如果 conditional 不为真,则执行 else 子句中指定的 code。

  if 表达式的 conditional 通过保留字 then、一个换行符或一个分号,来与代码分离开。

  实例

  #!/usr/bin/ruby

  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

  x is 1

  Ruby if 修饰符

  语法

  code if condition

  如果 conditional 为真,则执行 code。

  实例

  #!/usr/bin/ruby

  $debug=1

  print "debug\n" if $debug

  这将产生以下结果:

  debug

  Ruby unless 语句

  语法

  unless conditional [then]

  code

  [else

  code ]

  end

  如果 conditional 为假,则执行 code。如果 conditional 为真,则执行 else 子句中指定的 code。

  实例

  #!/usr/bin/ruby

  x=1

  unless x>2

  puts "x is less than 2"

  else

  puts "x is greater than 2"

  end

  这将产生以下结果:

  x is less than 2

  Ruby unless 修饰符

  语法

  code unless conditional

  如果 conditional 为假,则执行 code。

  实例

  #!/usr/bin/ruby

  $var = 1

  print "1 -- Value is set\n" if $var

  print "2 -- Value is set\n" unless $var

  $var = false

  print "3 -- Value is set\n" unless $var

  这将产生以下结果:

  1 -- Value is set

  3 -- Value is set

  Ruby case 语句

  语法

  case expression

  [when expression [, expression ...] [then]

  code ]...

  [else

  code ]

  end

  比较 case 所指定的 expression,当使用 === 运算符指定时,执行匹配的 when 子句的 code。

  when 子句所指定的 expression 背当作左操作数。如果没有匹配的 when 子句,case 执行 else 子句的代码。

  when 语句的表达式通过保留字 then、一个换行符或一个分号,来与代码分离开。

  因此:

  case expr0

  when expr1, expr2

  stmt1

  when expr3, expr4

  stmt2

  else

  stmt3

  end

  基本上类似于:

  _tmp = expr0

  if expr1 === _tmp || expr2 === _tmp

  stmt1

  elsif expr3 === _tmp || expr4 === _tmp

  stmt2

  else

  stmt3

  end

  实例

  #!/usr/bin/ruby

  $age = 5

  case $age

  when 0 .. 2

  puts "baby"

  when 3 .. 6

  puts "little child"

  when 7 .. 12

  puts "child"

  when 13 .. 18

  puts "youth"

  else

  puts "adult"

  end

  这将产生以下结果:

  little child

  本文转载自:w3cschool(编辑:雷林鹏 来源:网络)

雷林鹏分享:Ruby 判断的更多相关文章

  1. 雷林鹏分享:Ruby 循环

    Ruby 循环 Ruby 中的循环用于执行相同的代码块若干次.本章节将详细介绍 Ruby 支持的所有循环语句. Ruby while 语句 语法 while conditional [do] code ...

  2. 雷林鹏分享:Ruby 类和对象

    Ruby 类和对象 Ruby 是一种完美的面向对象编程语言.面向对象编程语言的特性包括: 数据封装 数据抽象 多态性 继承 这些特性将在 面向对象的 Ruby 中进行讨论. 一个面向对象的程序,涉及到 ...

  3. 雷林鹏分享:Ruby 正则表达式

    Ruby 正则表达式 正则表达式是一种特殊序列的字符,它通过使用有专门语法的模式来匹配或查找其他字符串或字符串集合. 语法 正则表达式从字面上看是一种介于斜杠之间或介于跟在 %r 后的任意分隔符之间的 ...

  4. 雷林鹏分享:Ruby CGI 编程

    Ruby CGI 编程 Ruby 是一门通用的语言,不仅仅是一门应用于WEB开发的语言,但 Ruby 在WEB应用及WEB工具中的开发是最常见的. 使用Ruby您不仅可以编写自己的SMTP服务器,FT ...

  5. 雷林鹏分享:C# 判断

    C# 判断 判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的). 下面是大多数编程语言中典型的判断结构的一般形式: 判断语句 C ...

  6. 雷林鹏分享:Ruby 安装 - Windows

    Ruby 安装 - Windows 下面列出了在 Windows 机器上安装 Ruby 的步骤. 注意:在安装时,您可能有不同的可用版本. 下载最新版的 Ruby 压缩文件.请点击这里下载. 下载 R ...

  7. 雷林鹏分享:Ruby 安装 - Unix

    Ruby 安装 - Unix 下面列出了在 Unix 机器上安装 Ruby 的步骤. 注意:在安装之前,请确保您有 root 权限. 下载最新版的 Ruby 压缩文件.请点击这里下载. 下载 Ruby ...

  8. 雷林鹏分享:Ruby 命令行选项

    Ruby 命令行选项 Ruby 一般是从命令行运行,方式如下: $ ruby [ options ] [.] [ programfile ] [ arguments ... ] 解释器可以通过下列选项 ...

  9. 雷林鹏分享:Ruby 语法

    Ruby 语法 让我们编写一个简单的 Ruby 程序.所有的 Ruby 文件扩展名都是 .rb.所以,把下面的源代码放在 test.rb 文件中. #!/usr/bin/ruby -w puts &q ...

随机推荐

  1. 禁止F12与右键

    实践项目的代码哦,给大家分享下,如何屏蔽右键与F12. 应用网站  www.empiretreasure.vip   与       www.MineBook.vip.可以去逛逛哦. 不多说了,上代码 ...

  2. Window下安装npm

    Node.js停火各大技术论坛都在讨论,前段时间工作太忙没时间学习,趁着周末空闲玩玩,在网上找了些资料发现Node.js本身有windows版和unix版下载和使用都挺方便但是其扩展模块依赖复杂通过手 ...

  3. Python之路----迭代器与生成器

    一.迭代器 L=[1,,2,3,4,5,] 取值:索引.循环for 循环for的取值:list列表 dic字典 str字符串 tuple元组 set f=open()句柄 range() enumer ...

  4. (六)最最基本的git操作

    1.git init——初始化仓库 初始化成功的标志如下(.git默认为隐藏) 2.git status——查看仓库状态 ps:未跟踪的文件 (untracked files) 不妨在尝试在仓库建立一 ...

  5. SNMP学习笔记之Python的netsnmp和pysnmp的性能对比

    0x00 概览 用python获取snmp信息有多个现成的库可以使用,其中比较常用的是netsnmp和pysnmp两个库.网上有较多的关于两个库的例子. 本文重点在于如何并发的获取snmp的数据,即同 ...

  6. Python3基础 str swapcase 英文字母大小写反转

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  7. POJ 1740 A New Stone Game(博弈)题解

    题意:有n个石子堆,每一个都可以轮流做如下操作:选一个石堆,移除至少1个石子,然后可以把这堆石子随便拿几次,随便放到任意的其他石子数不为0的石子堆,也可以不拿.不能操作败. 思路:我们先来证明,如果某 ...

  8. rabbitmq direct、fanout、topic 三种Exchange java 代码比较

    Producer端 1.channel的创建 无论是才用什么样的Exchange,创建channel代码都是相同的,如下 ConnectionFactory factory = new Connect ...

  9. Sass常用写法

    Sass使用变量,变量以$开头 $bgcolor:#f40; background-color:$bgcolor; 如果变量需要嵌套在字符串当中,就需要写在#{}之中 $direction:left; ...

  10. hbase读写流程分析

    前言 最近被大佬问到一个问题,hbase查询数据在最坏的场景下需要进行几次rpc,当时就懵了..下面主要对client端代码进行分析.阅读文章和看源码更配~ 读数据 流程总览 1. 从zookeepe ...