ruby中的控制语句.docx_第1页
ruby中的控制语句.docx_第2页
ruby中的控制语句.docx_第3页
ruby中的控制语句.docx_第4页
ruby中的控制语句.docx_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 控制语句Ruby中的控制语句有if 和unless、while和until、case、forin语句,在他们的使用上有两种用法:传统的写法和作为修饰符的写法。在书写的形式上也有共同点:l 条件表达式使用圆括弧的是可选的,通常不使用圆括号l 上述所有的控制语句的传统写法都已一个end结束l 所有的控制语句的返回值要么是nil要么是符合条件执行的代码最后一行表达式的值l 在表达式和代码体之间的的关键字可以使用换行符、分号等分隔符代替,如 if和unless中的then,while 中的do,case语句中then,for.in 中的dol 作为修饰符的通常条件是,代码和修饰条件在一样中,如果不在一行(可读性不好),可以使用begin.end代码块。l Ruby中条件表达式的结果只要不是nil和false,其他都为真。1.1 传统写法控制语句1.1.1 if 和unlessl if关于表达式和代码之间的分隔符的三种写法:def usage_if(dilimeter) if dilimeter=n puts dilimeter is n end if dilimeter=; ; puts dilimter is ; end if dilimeter=then then puts dilimter is then endendusage_if nusage_if ;usage_if then=begin output is:dilimeter is ndilimter is ;dilimter is then=endIf和else的配合使用def usage_if(dilimeter) if dilimeter=n puts dilimeter is n else puts puts dilimeter is not n endendIf和elsif的使用注意elsif不是elseif(缺少一个e),其实elsif 和 if的用法一样。同时在此语句中还可增加else语句,单需要放在所有条件判断的最后面,即当其上面所有的条件都不成立的时候,执行该代码。def usage_if(dilimeter) if dilimeter=n puts dilimeter is n elsif dilimeter=; ; puts dilimter is ; elsif dilimeter=then then puts dilimter is then elsif dilimeter=- puts dilimter is - else puts else dilimter end endif 和else if的使用,但是在这种使用中不可以出现独立的else。def usage_if(dilimeter) if dilimeter=n puts dilimeter is n else if dilimeter=; ; puts dilimter is ; end else puts else dilimter # 这两行代码会很出错 endendl unlessunless是if的反操作,只要表达式不成立就执行。对于分隔符unless和if是一样的,以下对unless的三种写法都是一样的效果:=begindef usage_unless(value) unless value=1 then puts value is not 1 endenddef usage_unless(value) unless value=1; puts value is not 1 endend=enddef usage_unless(value) unless value=1 puts value is not 1 endendusage_unless 21.1.2 while和untilwhile 和until是一对反操作,一般为了代码更清晰,我们往往更喜欢使用while他们的使用格式为:express=2while express0 #表达式为真 puts express express-=1end #=2,1express=-1until express0 #表达式为为假 puts express express+=1 #=-1,0end1.1.3 casecase是一个多路条件表达式,其中最简单的用法是代替if。Case的格式为:express=2result= case when express=1 then one when express=2,express=3 then two # 这里when表达式,可以使用,逗号分开,相当于或的关系,便于阅读,此情况经常写成:express=2|express=3 endputs result #=two由于所有when的条件表达式中变量都是一样的,(注意上面使用了所有控制语句都有返回值的写法)所以我们推荐这样写,把变量放到case的后面:express=2result= case express when 1; one when 2; twoelse else endputs result #=two上面代码的使用了else来配合case,当所有的when都不成立的时候,程序执行else。1.1.4 forinfor.in是针对拥有each迭代器方法对象的元素进行迭代,如数组、字符串、hash等枚举对象,所以其变量可以是一个或多个(根据具体的枚举对象的each方法决定)。arry=a,b,c,d,efor e in arry puts eendmy_hash=one:a, two:b, three:c for key,value in my_hash do puts my_hash#key=#valueend 需要注意的是,在for循环体中的作为条件的的变量不是局部变量,即循环结束后该变量仍然存在且能使用,如下,在退出循环体后,变量key仍然可以使用,且保存了运循环体中最后循环一次执行的值:my_hash=one:a, two:b, three:cfor key,value in my_hash do puts my_hash#key=#valueendputs key #=three1.2 修饰符写法控制语对于只有一样代码的条件控制语句如果使用传统的写法略显笨拙,如此可以使用修饰符的写法(modifier),其格式为:Code 控制语句关键字 条件表达式对于有多行执行的代码可以采用:begin #code#code End 控制语句的关键字 条件表示注意如果出现多行执行代码,为了代码的阅读性还是建议使用传统的方法书写。其中上面的begin end 还可以使用“(#code)“来代替。1.2.1 if 和unlessexpress=1puts one if express=1express=2# 多行执行代码的写法beginputs is not oneputs this is multiple lineend unless express=1puts1.2.2 while和until# 以下使用圆括号来代替begin end把多于一样的执行代码组成一体express=true (putsthis is also express in ruby namly literal is als baisc express like 1 express=false)wh

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论