站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
▼
建站程序
开发
服务器
办公软件
开发教程
▼
服务器教程
软件使用教程
运营教程
热门电子书
▼
CSS教程
WordPress教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
热点词条
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
Ruby-流程控制
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
<span style="text-align:center; border:1px solid #000; float:right; padding:6px;"><strong>导航:</strong> [[Ruby学习教程#Ruby学习教程|上一页]] | {{template:开发语言导航}}</span> <div style="clear:both;"></div> == case == 我们用case语句测试有次序的条件.正如我们所见的,这和C,Java的switch相当接近,但更强大. <br> ruby> i=8<br> ruby> case i<br> | when 1, 2..5<br> | print "1..5\n"<br> | when 6..10<br> | print "6..10\n"<br> | end<br> 6 ..10<br> nil <br> 2..5表示2到5之间的一个范围.下面的表达式测试 i 是否在范围内:<br> (2..5) === i <br> case 内部也是用关系运算符 === 来同时测试几个条件.为了保持ruby的面对对象性质, === 可以合适地理解为出现在 when 条件里的对 象.比如,下面的代码现在第一个 when 里测试字符串是否相等,并在第二个 when 里进行正则表达式匹配.<br> ruby> case 'abcdef'<br> | when 'aaa', 'bbb'<br> | print "aaa or bbb\n"<br> | when /def/<br> | print "includes /def/\n"<br> | end<br> includes /def/<br> nil <br> == while == 虽然你将会在下一章发现并不需要经常将循环体写得很清楚,但 Ruby 还是提供了一套构建循环的好用的方法.<br> while 是重复的 if.我们在猜词游戏和正则表达式中使用过它(见前面的章节);这里,当条件(condition)为真的时候,它围绕一个代码域以 while condition...end的形式循环.但 while 和 if 可以很容易就运用于单独语句:<br> ruby> i = 0<br> 0<br> ruby> print "It's zero.\n" if i==0<br> It's zero.<br> nil<br> ruby> print "It's negative.\n" if i<0<br> nil<br> ruby> print "#{i+=1}\n" while i<3<br> 1<br> 2<br> 3<br> nil <br> 有时候你想要否定一个测试条件. unless 是 if 的否定, until 是一个否定的 while.在这里我把它们留给你实验.<br> There are four ways to interrupt the progress of a loop from inside. First, break means, as in C, to escape from the <br> loop entirely. Second, next skips to the beginning of the next iteration of the loop (corresponding to C's continue). <br> Third, ruby has redo, which restarts the current iteration. The following is C code illustrating the meanings of break, <br> next, and redo:<br> 有四种从内部中断循环的方法.第一,和C一样break从循环中完全退出.第二, next 跳到下一次循环迭代的开始(对应于C的 continue ).第<br> 三,Ruby有redo,它可以重新开始现在的迭代.下面是用 C 代码对break,next,redo的意义做了演示:<br> while (condition) { <br> label_redo: <br> goto label_next; /* ruby's "next" */ <br> goto label_break; /* ruby's "break" */ <br> goto label_redo; /* ruby's "redo" */ <br> ... <br> ... <br> label_next:<br> }<br> label_break:<br> ... <br> 第四种方法是由循环内跳出的方法是 returen. return的结果是不仅从循环中跳出,而且会从含循环的方法中跳出.如果有参数,它会返回给方法调用,不然就返回nil.<br> == for == C程序员现在会想知道怎样做一个"for"循环.Ruby的for比你想象的要有趣一点.下面的loop由集合中的元素控制运行:<br> for elt in collection <br> ...<br> end <br> 集合可以是一个数集(也是传统意义上的for循环):<br> ruby> for num in (4..6)<br> | print num,"\n"<br> | end<br> 4<br> 5<br> 6<br> 4..6 <br> 也可以是其它的什么类型的集合,比如一个数组:<br> ruby> for elt in [100,-9.6,"pickle"]<br> | print "#{elt}\t(#{elt.type})\n"<br> | end<br> 100 (Fixnum)<br> -9.6 (Float)<br> pickle (String)<br> [100, -9.6, "pickle"] <br> 但我们说过头了.for其实是 each 的另一写法,正巧,这是我们关于迭代器的第一个例子.下面的两种形式是等价的:<br> # If you're used to C or Java, you might prefer this.<br> for i in collection <br> ...<br> end<br> # A Smalltalk programmer might prefer this.<br> collection.each {|i|<br> ...<br> } <br> 一旦你熟悉了迭代器,它便会常常代替传统的循环.它们一般更容易处理.因此,让我们接着学习更多关于迭代器的知识.<br> [[category:Ruby学习教程]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:开发语言导航
(
编辑
)