设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2045|回复: 8
打印 上一主题 下一主题

[已经解决] if...else...end 如何简写

[复制链接]

Lv1.梦旅人

梦石
0
星屑
136
在线时间
1050 小时
注册时间
2006-5-3
帖子
774
跳转到指定楼层
1
发表于 2013-10-5 10:41:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
想要把
  1. if ...
  2.   ...
  3. else
  4.   ...
  5. end
复制代码
还有
  1. if ...
  2.   ...
  3. elsif
  4.   ...
  5. else
  6.   ...
  7. end
复制代码
都简写,写到同一行里面,这样简便
我记得好像
  1. if ... : ...
复制代码
类似的写法,但是我不知道,求大家指导
漏夏同人
《咱的夏天》
下载地址:http://tieba.baidu.com/p/2681607456
人员招募:http://rpg.blue/thread-339747-1-1.html

Lv4.逐梦者 (版主)

百合控

梦石
0
星屑
6643
在线时间
1275 小时
注册时间
2013-8-21
帖子
3657

开拓者

2
发表于 2013-10-5 10:47:35 | 只看该作者
  1. 条件 ? 表达式1 : 表达式2
复制代码
判断条件,满足时返回表达式1,否则返回表达式2
  1. 语句 if 条件
复制代码
条件满足时,执行语句
  1. if 条件 then 语句1 else 语句2 end
复制代码
条件满足,执行语句1,否则执行语句2
其中语句1可以省略,但是then和else要保留
上面的if都可以换成unless

评分

参与人数 1星屑 +66 收起 理由
熊喵酱 + 66 精品文章

查看全部评分

萌新瑟瑟发抖
看到我请叫我去干活
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
136
在线时间
1050 小时
注册时间
2006-5-3
帖子
774
3
 楼主| 发表于 2013-10-5 10:50:18 | 只看该作者
余烬之中 发表于 2013-10-5 10:47
判断条件,满足时返回表达式1,否则返回表达式2条件满足时,执行语句条件满足,执行语句1,否则执行语句2
...

第一种可以写成
  1. 条件 ? 表达式1 : 表达式2 : 表达式3 ......
复制代码
这样后面无限写吗

点评

不可以,因为只有一个条件  发表于 2013-10-5 10:52
漏夏同人
《咱的夏天》
下载地址:http://tieba.baidu.com/p/2681607456
人员招募:http://rpg.blue/thread-339747-1-1.html
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
135 小时
注册时间
2013-6-10
帖子
29
4
发表于 2013-10-5 11:21:33 | 只看该作者
本帖最后由 xTsukihime 于 2013-10-6 02:47 编辑
  1. ... ? true1 : ... ? true2 : false
复制代码
=

  1. if ...
  2.    true1
  3. else
  4.    if ...
  5.      true2
  6.    else
  7.      false
  8.    end
  9. end
复制代码
=

  1. if ...
  2.   true1
  3. elsif ...
  4.   true2
  5. else
  6.   false
  7. end
复制代码

点评

哦,對了。也不應該有if。  发表于 2013-10-6 02:46
应该是if ... ? true1 : ... ? true2 : false [换行或then] 语句 [else] [语句] end【第二个if不能要吧……  发表于 2013-10-5 11:32

评分

参与人数 1星屑 +66 收起 理由
熊喵酱 + 66 认可答案(Thanks for helping)

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
117
在线时间
552 小时
注册时间
2012-8-18
帖子
1429
5
发表于 2013-10-5 13:00:43 | 只看该作者
[条件] ? [语句1] : [语句2]
如果条件为真,那么整个语句的返回值为[语句1]的值,否则为[语句2]的值
而这个本身又是一个语句,因此
[条件1] ? [语句1] : [条件2] ? [语句2] : [语句3] #相当于把[条件2] ? [语句2] : [语句3] 作为原本的语句2
[条件1] ? [条件2] ? [语句1] : [语句2] : [语句3] #相当于把[条件2] ? [语句1] : [语句2] 作为原本的语句1
[条件1] ? [条件2] ? [语句1] : [语句2] : [条件3] ? [语句3] : [语句4]  #……
以此类推,不过这种格式用得多了会使代码变得难懂,请酌情使用
我要填坑!我要背单词!我要学日语!我要每天锻炼!
好吧呵呵= =
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1379
在线时间
962 小时
注册时间
2012-4-30
帖子
1475

开拓者

6
发表于 2013-10-5 13:01:00 | 只看该作者
一行版 if...;elsif...;else...;end ruby中;号也可以当结束之前语句用。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
7 小时
注册时间
2013-2-8
帖子
8
7
发表于 2013-10-5 16:09:37 | 只看该作者
gaofei677 发表于 2013-10-5 10:50
第一种可以写成这样后面无限写吗

你这种还可以用
  1. case 条件
  2. when 结果1
  3.     表达式1
  4. when 结果2
  5.     表达式2
  6. when 结果3
  7.     表达式3
  8. ....
  9. when 结果n
  10.     表达式n
  11. else
  12.     表达式n+1
  13. end
复制代码
这种形式。
话说你干嘛要写作一行啊!也不嫌看得慌!
嵌来嵌去的很容易就出错哦!

评分

参与人数 1星屑 +33 收起 理由
熊喵酱 + 33 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
453
在线时间
343 小时
注册时间
2012-8-9
帖子
118
8
发表于 2013-10-5 18:20:34 | 只看该作者
  1. class Ifobj
  2. def init(x)
  3.   self.x=x
  4. end
  5. def t(&b)
  6.    self.c=&b
  7. end
  8. def e(%b)
  9.   self.e=&b
  10. end
  11. def o
  12.   if self.x.call
  13.     self.t.call
  14.   else
  15.     self.e.call
  16.   end
  17. end
  18. end
  19. def i(&b)
  20.   Ifobj.new
  21.   Ifobj.init &b
  22.   Ifobj
  23. end
复制代码
这样然后大概就能
p i{a>b}.t{1}.e{2}.o
了吧(雾

点评

@无脑之人 没测试在论坛编辑框里直接写的= =  发表于 2013-10-6 08:21
而且这段代码一脸报错的表情诶= =  发表于 2013-10-5 21:56
使用块这么作死是闹哪样= =|||  发表于 2013-10-5 21:54
hello, world

有事情邮件联系 shuenhoy#gmail.com(#换成@)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 10:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表