比较详细,Ruby简明教程之推断语句介绍

条件决断,在编程语言中都设有,而Ruby中的条件剖断和Java中近乎,当然依旧存在多少异样

Page 3 概述

Page 3 概述

Ruby中规范推断的尺码:

¨         解释执行:Python,Ruby,交互性很好;

¨         编译执行:Pascal, C,速度较快。

n         本地执行,如C,C++;

n         虚拟机执行,如Java, C#。

 

¨         动态语言,如JavaScript,Ruby;

¨         静态语言,如C++,Java。

¨         解释执行:Python,Ruby,交互性很好;

¨         编译执行:Pascal, C,速度较快。

n         本地执行,如C,C++;

n         虚拟机执行,如Java, C#。

 

¨         动态语言,如JavaScript,Ruby;

¨         静态语言,如C++,Java。

1) 能够运用
==,<,>等相比较运算来作为基准,比较运算能够回来true和false,那和java中的语法是类似的

 

 

2)
一些另外的点子也得以用来作为度量规范,比方,empty?方法,为空则重临true,否则再次来到false

语言

¨         语法

关键字

¨         语义

¨         语用

 

语言

¨         语法

关键字

¨         语义

¨         语用

 

3)
有个别措施固然不会再次来到true或false,不过也能作为基准判断的口径,他们回到的对象,要么是false或nil,要么是意义的指标,则可依附如下表格判定:

松本行弘(马茨) 壹玖玖肆

比较详细,Ruby简明教程之推断语句介绍。松本行弘(马茨) 1994

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

Ruby [`ru:bi](红宝石)

Ruby [`ru:bi](红宝石)

p /Ruby/ =~ “Ruby”  重返0,则在条件决断中得以回到true

 

 

Ruby中也能够动用常用的逻辑运算符,&&,||,!,其象征的意思与JAVA中的意义是如出一辙的。

美高梅开户网址 1 

美高梅开户网址 2 

Ruby中的条件剖断语句:

Ruby 吸取了 perl 的正则表达式, python 的简单性可读性,smalltalk 的纯面向对象语法和单继承,LISP 的无穷嵌套的语法,Java的线程…

Ruby 吸取了 perl 的正则表达式, python 的简单性可读性,smalltalk 的纯面向对象语法和单继承,LISP 的无穷嵌套的语法,Java的线程…

1. if 语句

 

 

复制代码 代码如下:

Page 14 上手

Page 14 上手

=begin
语法:
if 条件1 then
   语句1
elsif 条件2 then
   语句2
elsif 条件3 then
   语句3
else
   语句4
end
=end

XP

XP

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

Cmd

Cmd

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

C:\Documents and Settings\Administrator>ruby -v

ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]

C:\Documents and Settings\Administrator>ruby -v

ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]

复制代码 代码如下:

 

 

=begin
语法:
unless 条件 then
   语句
end
=end

先是种方式:ruby命令

率先种办法:ruby命令

a = 10
b = 20
unless a>b then
   print “a is smaller than b.”
end

C:\Documents and Settings\Administrator>ruby -e ‘print "hello world"’

hello world

C:\Documents and Settings\Administrator>ruby -e ‘print "hello world"’

hello world

# -> “a is smaller than b” will be printed out.

 

 

3. case 语句 当同二个对象,要与八个值实行相比较时,能够应用case语句,其成效与JAVA中的switch语句看似

ruby               运行ruby;

ruby               运行ruby;

复制代码 代码如下:

-e                  实践前边的ruby脚本程序;

-e                  推行前边的ruby脚本程序;

=begin
语法:
case 想要相比较的靶子
when 值1 then
    语句1
when 值2 then
美高梅开户网址,    语句2
when 值3 then
    语句3
else
    语句4
end
# then是足以简轻巧单的
=end

print               打字与印刷展现;

print               打字与印刷突显;

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
#这里相比较的是目的的品类,实际不是指标的值

hello,world     要出口的源委。

hello,world     要出口的剧情。

PS: if修饰符和unless修饰符能够写在实行语句前边,譬喻,print “a is larger
than b.” if a>b,所以ruby是很灵敏的。

 

 

“===”符号的意思,其在区别的场子能够代表分化的符号,若左侧是数字或字符串时,则和”==”是同样的;在正则表达式的场合下则一定于”=~”;在类的场面下,剖断”===”侧边的靶子是还是不是是类的实例

其次种情势:irb交互施行

其次种办法:irb交互实行

复制代码 代码如下:

C:\Documents and Settings\Administrator>irb

irb(main):001:0> print "hello world"

hello world=> nil

irb(main):002:0> exit

C:\Documents and Settings\Administrator>irb

irb(main):001:0> print "hello world"

hello world=> nil

irb(main):002:0> exit

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

exit: 退出irb交互式情形

exit: 退出irb交互式蒙受

您恐怕感兴趣的文章:

  • Ruby简明教程之循环语句介绍

 

 

其两种办法:创立ruby脚本

其三种格局:创造ruby脚本

C:\Documents and Settings\Administrator>copy con helloworld.rb

print "hello world"

print "3*7=",3*7

^Z

已复制         1 个文件。

 

C:\Documents and Settings\Administrator>helloworld.rb

hello world3*7=21

C:\Documents and Settings\Administrator>copy con helloworld.rb

print "hello world"

print "3*7=",3*7

^Z

已复制         1 个文件。

 

C:\Documents and Settings\Administrator>helloworld.rb

hello world3*7=21

 

 

Page 17 IDE

Page 17 IDE

¨         Eclipse + RDT(Ruby Development Tools)

¨         Eclipse + RDT(Ruby Development Tools)

¨         FreeRIDE+SciTE

¨         FreeRIDE+SciTE

1.在SciTE编辑Ruby代码;

1.在SciTE编辑Ruby代码;

2.保存为 .rb文件;

2.保存为 .rb文件;

3.菜单栏,工具->运行照旧F5;

3.菜单栏,工具->运维依然F5;

Page 18 语法

Page 18 语法

1.      注释

1.      注释

单行注释       #                多行注释     =begin            =end

单行注释       #                多行注释     =begin            =end

Ruby的内嵌文书档案(PRADOdoc)注释,用ri命令从源文件中爆发文书档案。

Ruby的内嵌文书档案(Highlanderdoc)注释,用ri命令从源文件中爆发文书档案。

奇骏doc内嵌在ruby代码之中的,能够转变为html文书档案。

CR-Vdoc内嵌在ruby代码之中的,能够转移为html文书档案。

ri命令,用来查阅函数表明、类表明。函数表明、类表达应该放置在=begin和=end之中。注意:“=begin”一定要写在行首,也正是说,这一行前几个字符是“=begin”,此前不容许有空格。

ri命令,用来查阅函数表明、类表达。函数表明、类表明应该放置在=begin和=end之中。注意:“=begin”一定要写在行首,也便是说,这一行前四个字符是“=begin”,之前不容许有空格。

2.      分行

2.      分行

用分号;表示语句甘休。

用分号;表示语句停止。

一行三个语句,用分号隔开分离,最终七个言语,分号能够省略,换行符表示一行截止。

一行四个语句,用分号隔断,最后叁个口舌,分号能够简单,换行符表示一行结束。

语句太长,能够在行末用符号 \ ,表示续行。

语句太长,能够在行末用符号 \ ,表示续行。

3.      分隔符

3.      分隔符

名称

符号

用途

分号

;

用来分隔一行中的多个语句

圆括号

(  )

提高优先级;定义方法时容纳参数列表

空格

 

分隔字符;在可省略()的地方,代替()

逗号

,

隔开多个参数

.

将对象与它的方法隔开

紧连的两个冒号

::

域作用符,将模块(类)与它的常量隔开

名称

符号

用途

分号

;

用来分隔一行中的多个语句

圆括号

(  )

提高优先级;定义方法时容纳参数列表

空格

 

分隔字符;在可省略()的地方,代替()

逗号

,

隔开多个参数

.

将对象与它的方法隔开

紧连的两个冒号

::

域作用符,将模块(类)与它的常量隔开

4.      关键字

4.      关键字

Ruby中的关键字如下:

Ruby中的关键字如下:

模块定义:

模块定义:

module

module

特别管理:

相当管理:

rescue,ensure

rescue,ensure

类定义:

类定义:

class

class

目的援用:

指标引用:

super,self

super,self

艺术定义:

方法定义:

def,undef

def,undef

块的开头:

块的开端:

begin/end

begin/end

自己评论项目:

检查项目:

defined?

defined?

放到模块:

松开模块:

BEGIN,END

BEGIN,END

逻辑值和空值:

逻辑值和空值:

true,false,nil

true,false,nil

文件有关:

文本有关:

__FILE__,__LINE__

__FILE__,__LINE__

逻辑剖断:

逻辑判别:

not,and,or

not,and,or

主意重临:

艺术再次来到:

return

return

规格语句:

基准语句:

if,then,else,elsif,case,when,unless

if,then,else,elsif,case,when,unless

别名:

别名:

alias

alias

循环语句:

循环语句:

for,in,while,until,next,break,do,redo,retry,yield

for,in,while,until,next,break,do,redo,retry,yield

BEGIN模块相当于C语言中的宏,END模块用来作一些说尽责业。有了

BEGIN模块相当于C语言中的宏,END模块用来作一些了结职业。有了

require,include,应该收回BEGIN和END的语法定义。

require,include,应该打消BEGIN和END的语法定义。

5.      运算符

5.      运算符

6.      标识名:

6.      标识名:

常量,变量,方法,类和模块;

常量,变量,方法,类和模块;

大大小小写敏感;

大小写敏感;

标记名第三个字符评释那几个名字的用法。

标记名第一个字符声明这些名字的用法。

局部变量、方法参数和方法名称

以小写字母开头或者下划线开头;

类名、模块名和常量

用大写字母开头。

全局变量

以美元符为前缀$;

实例变量

以@开头;

类变量

用@@开头;

局部变量、方法参数和方法名称

以小写字母开头或者下划线开头;

类名、模块名和常量

用大写字母开头。

全局变量

以美元符为前缀$;

实例变量

以@开头;

类变量

用@@开头;

词首字母前边能够是字母、数字和下划线的自便组合;

词首字母后边能够是字母、数字和下划线的自由组合;

@后边不得以一向跟数字。

@前面不得以一贯跟数字。

Ruby程序代码用7位ACSII码来代表,通过言语增添来支撑
EUC,SJIS或UTF-8等8位编码系统。Ruby2.0版本将扶助拾11个人的Unicode编码。

Ruby程序代码用7位ACSII码来表示,通过言语扩充来支撑
EUC,SJIS或UTF-8等8位编码系统。Ruby2.0版本将援助16个人的Unicode编码。

7.      类库

7.      类库

能够直接利用:

能够直接选择:

i) 关键字;

i) 关键字;

ii) require也许include包蕴的类库中的类、方法;

ii) require只怕include包罗的类库中的类、方法;

iii)从父类中继承获得的不二等秘书技。

iii)从父类中接二连三猎取的法子。

 

 

puts

每个参数后自动换行

print

不自动换行,换行用”\n”

printf

按格式输出,不自动换行

gets

从键盘或文件中读入数据

puts

每个参数后自动换行

print

不自动换行,换行用”\n”

printf

按格式输出,不自动换行

gets

从键盘或文件中读入数据

 

 

C:\Documents and Settings\Administrator>ruby -e ‘puts "hello","world"’

hello

world

C:\Documents and Settings\Administrator>ruby -e ‘puts "hello","world"’

hello

world

 

 

C:\Documents and Settings\Administrator>ruby -e ‘printf "number:%f",3.2’

number:3.200000

C:\Documents and Settings\Administrator>ruby -e ‘printf "number:%f",3.2’

number:3.200000

 

 

 

 

瞩目:printf的参数之间用逗号隔断。

只顾:printf的参数之间用逗号隔开分离。

C:\Documents and Settings\Administrator>ruby -e ‘ printf "number:%4.3f,string %s

",1.5,"hello world"’

number:1.500,string hello world

C:\Documents and Settings\Administrator>ruby -e ‘ printf "number:%4.3f,string %s

",1.5,"hello world"’

number:1.500,string hello world

 

 

8.      数据类型

8.      数据类型

类型

类型

分类

分类

证实及示范

表达及示范

数字

数字

整数型

整数型

0        八进制,

0        八进制,

0x  十六进制,0b  二进制

0x  十六进制,0b  二进制

浮点型

浮点型

字符串

字符串

单引号  ‘’

单引号  ‘’

 

 

双引号  “”

双引号  “”

 

 

数组

数组

从0开首,每一个成分得以差别品种

从0开端,各样成分得以差异种类

例 [2.4,”thank you”,[a,b,c],78]

例 [2.4,”thank you”,[a,b,c],78]

区间

区间

1..5

1..5

1,2,3,4,5

1,2,3,4,5

1…5

1…5

1,2,3,4

1,2,3,4

正则表明式

正则表明式

 

 

 

 

9.      赋值运算

9.      赋值运算

交流变量a,b的值:

交流变量a,b的值:

a,b=b,a;

a,b=b,a;

留心括号:

小心括号:

a = (b = 1 + 2) + 3                #a=6 ,b=3

a = (b = 1 + 2) + 3                #a=6 ,b=3

逗号,从左往右运算,分别赋给a,b,c

逗号,从左往右运算,分别赋给a,b,c

x = 0                           #x=0

x = 0                           #x=0

a,b,c = x, (x+1), (x+2)           #a=0 ,b=1,c=2

a,b,c = x, (x+1), (x+2)           #a=0 ,b=1,c=2

10.  基准运算

10.  法则运算

==

等于

!=

不等于

eql?

比较两个对象的值、类型是否相等

equal?

比较两个对象在内存中地址是否相同

小于

大于

<=

小于等于

>=

大于等于

=~

匹配正则表达式

!~

断言不匹配正则表达式

===

右边的对象在左边区间内

puts(0..9)===3.14  #true puts(‘a’..’f’)===’c’    # true

<=>

比较两个对象大小,大于1,等于0,小于-1.

==

等于

!=

不等于

eql?

比较两个对象的值、类型是否相等

equal?

比较两个对象在内存中地址是否相同

小于

大于

<=

小于等于

>=

大于等于

=~

匹配正则表达式

!~

断言不匹配正则表达式

===

右边的对象在左边区间内

puts(0..9)===3.14  #true puts(‘a’..’f’)===’c’    # true

<=>

比较两个对象大小,大于1,等于0,小于-1.

Ruby里,nil和false为假,别的都为真。

Ruby里,nil和false为假,其余都为真。

 

 

11.  决断语句

11.  看清语句

  1. 单行if语句
  1. 单行if语句

if    then    end

if    then    end

(    ) if

(    ) if

  1. 多行if语句
  1. 多行if语句

if    elsif    else    end

if    elsif    else    end

  1. unless条件语句
  1. unless条件语句

 

 

unless

unless

 

 

if not

if not

 

 

  1. case分支条件语句
  1. case分支条件语句

 

 

case

case

when

when

when

when

else

else

end

end

 

 

12.  循环语句

12.  循环语句

单行while

(语句1;语句2;语句…)while条件

多行while

while  条件 

语句,语句 

end

until直到

until 跳出循环条件  语句

until 条件=while not (条件)

for…in循环

for  变量  in  对象

   语句1; 语句2 ;  语句…

end

单行while

(语句1;语句2;语句…)while条件

多行while

while  条件 

语句,语句 

end

until直到

until 跳出循环条件  语句

until 条件=while not (条件)

for…in循环

for  变量  in  对象

   语句1; 语句2 ;  语句…

end

 

 

break,next&redo&retry

break,next&redo&retry

在循环体内,如若遇到:

在循环体内,要是超出:

break

跳出当层循环;

next

忽略本次循环的剩余部分,开始下一次的循环;

redo

重新开始循环,还是从这一次开始;

retry

重头开始这个循环体。

break

跳出当层循环;

next

忽略本次循环的剩余部分,开始下一次的循环;

redo

重新开始循环,还是从这一次开始;

retry

重头开始这个循环体。

 

 

times , upto , downto , each ,step

times , upto , downto , each ,step

语句

运行结果

3.times { print  "Hi!" }

#Hi!Hi!Hi! 

1.upto(9) {|i| print  i  if  i<7 }

#123456   

9.downto(1){|i| print  i  if  i<7 }

#654321

(1..9).each {|i| print  i  if  i<7}

#123456   

0.step(11,3) {|i| print  i  }

#0369     

语句

运行结果

3.times { print  "Hi!" }

#Hi!Hi!Hi! 

1.upto(9) {|i| print  i  if  i<7 }

#123456   

9.downto(1){|i| print  i  if  i<7 }

#654321

(1..9).each {|i| print  i  if  i<7}

#123456   

0.step(11,3) {|i| print  i  }

#0369     

 

 

C:\Documents and Settings\Administrator>irb

irb(main):001:0> 1.upto(9){|i| print i if i<7}

123456=> 1

irb(main):002:0> 9.downto(1){|i|print i if i<7}

654321=> 9

irb(main):003:0> (1..9).each {|i| print i if i<7}

123456=> 1..9

irb(main):004:0> 0.step(11,3) {|i| print i}

0369=> 0

C:\Documents and Settings\Administrator>irb

irb(main):001:0> 1.upto(9){|i| print i if i<7}

123456=> 1

irb(main):002:0> 9.downto(1){|i|print i if i<7}

654321=> 9

irb(main):003:0> (1..9).each {|i| print i if i<7}

123456=> 1..9

irb(main):004:0> 0.step(11,3) {|i| print i}

0369=> 0

 

 

13.  异常

13.  异常

Java

Java

try…catch…finally…throw

try…catch…finally…throw

Ruby

Ruby

begin/end…rescue…ensure…raise

begin/end…rescue…ensure…raise

retry能够用在rescue中。能够只用rescue或ensure,两个都选用时,rescue必须在ensure前。

retry能够用在rescue中。能够只用rescue或ensure,两个都选择时,rescue必须在ensure前。

14.  线程 

14.  线程 

1234下一页读书全文

3 概述 ¨ 解释实施: Python , Ruby
,交互性很好; ¨ 编译试行: 帕斯Carl, C ,速度很快。 n 本地实施,如 C ,
C++ ; n 虚构机实施,如 Ja…

你只怕感兴趣的稿子:

  • ruby 学习笔记(2)
    类的主干采取
  • Ruby rails
    页面跳转(render和redirect_to)
  • 在Ruby on Rails中使用Rails Active
    Resource的教程

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图