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. 【week6】团队贡献分

    小组名称:nice! 小组成员:李权 于淼 杨柳 刘芳芳 项目内容:约跑app 完成任务:   10% 20% 70% 好   于淼 李权 中   刘芳芳 杨柳 差       1.李权8.4 2.于 ...

  2. zw版【转发·台湾nvp系列Delphi例程】HALCON BitXor

    zw版[转发·台湾nvp系列Delphi例程]HALCON BitXor procedure TForm1.Button1Click(Sender: TObject);var image0, imag ...

  3. FAFU 1395

    动态规划:...翻牌FAFU 1395 动态规划

  4. Linux中顿号

    ``的作用是运行``之间的命令,并且将命令运行的结果返回.一般shell脚本应该是这样:result=`ls -l` (用你的命令替换ls -l,这里只是举例)这样,result就有``里面的运行结果 ...

  5. 聊聊WKWebView

    聊一聊WKWebView 前言 由于之前一直在用UIWebView,所以对于WKWebView只是停留在知道,了解的状态,并未深入的去研究.前天一个项目要求支持iOS8以上,要加入一个web界面.在习 ...

  6. WSDL解析

    背景 前面我们介绍过利用javassist动态生成webservice,这种方式可以使得我们系统通过页面配置动态发布webservice服务,做到0代码开发发布北向接口.进一步思考,我们如何0代码开发 ...

  7. tomcat和jetty区别

    参见:https://www.cnblogs.com/fengli9998/p/7247559.html 1. Jetty更轻量级.这是相对Tomcat而言的. 由于Tomcat除了遵循Java Se ...

  8. 我是怎么样和Linux结缘并通过红帽RHCE认证的

    我高考完当时就是选择的计算机科学与技术专业,上大学以后联想到的和计算机相关的就只有写代码,开发,网站,网页设计,就没有其他的了,当时学习写代码也都是在Windows上,什么C#.C++之类的?大约在大 ...

  9. Docker容器和数据可视化管理工具Flocker

    Flocker 可轻松实现 Docker 容器及其数据的管理.这是一个数据卷管理器和多主机的 Docker 集群管理工具,你可以通过它来控制数据.可用来在 Docker 中运行你的数据库.查询和 K/ ...

  10. bzoj1639 / P2884 [USACO07MAR]每月的费用Monthly Expense

    P2884 [USACO07MAR]每月的费用Monthly Expense 二分经典题 二分每个段的限制花费,顺便统计下最大段 注意可以分空段 #include<iostream> #i ...