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

Project1

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

错了的代码

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
24 小时
注册时间
2007-2-9
帖子
397
跳转到指定楼层
1
发表于 2008-2-21 22:30:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
巨简单的一段代码...还是出错了
a = 6
b = 8
c = a + b
while c <= 50
  a += 1
  b +=1
end
if c <= 50
  print ("OK~")
elsif 100 => c > 50
  print ("NO")
  while c <= 50
  a += 2
  b +=2
end
else c < 100
  p c
end
exit
我的意思是,要执行两段循环,第一段是C小于等于50,则执行4、5、6行,第二段时执行12、13、14行...出错了
那该怎么写?

如果问题解决了就结帖吧~

此贴于 2008-2-21 15:04:28 被版主水迭澜提醒,请楼主看到后对本贴做出回应。

版务信息:本贴由楼主自主结贴~

Lv3.寻梦者

孤独守望

梦石
0
星屑
3137
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

2
发表于 2008-2-21 22:34:07 | 只看该作者
while c <= 50
a += 1
b +=1
end

while c <= 50
a += 2
b +=2
end

这两段代码有问题……while是只要条件为真就执行下面的内容,这两个都是死循环,因为循环过程当中c不会增加……
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
24 小时
注册时间
2007-2-9
帖子
397
3
 楼主| 发表于 2008-2-21 22:35:09 | 只看该作者
以下引用IamI于2008-2-21 14:34:07的发言:

while c <= 50
a += 1
b +=1
end

while c <= 50
a += 2
b +=2
end

这两段代码有问题……while是只要条件为真就执行下面的内容,这两个都是死循环,因为循环过程当中c不会增加……

那该怎么改?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

冰王子

梦石
0
星屑
50
在线时间
34 小时
注册时间
2008-1-27
帖子
1875
4
发表于 2008-2-21 22:36:09 | 只看该作者
加上c = a + b
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
24 小时
注册时间
2007-2-9
帖子
397
5
 楼主| 发表于 2008-2-21 22:37:15 | 只看该作者
以下引用凌冰于2008-2-21 14:36:09的发言:

加上c = a + b

哦~3Q
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3137
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

6
发表于 2008-2-21 22:37:51 | 只看该作者
LZ的代码有点乱,显然是要么初学,要么从别的语言转过来的。
这样吧,先说一下要达到怎么样的功效。
顺便说一句,不能用else X,而是elsif X
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
24 小时
注册时间
2007-2-9
帖子
397
7
 楼主| 发表于 2008-2-21 22:40:24 | 只看该作者
以下引用IamI于2008-2-21 14:37:51的发言:

LZ的代码有点乱,显然是要么初学,要么从别的语言转过来的。
这样吧,先说一下要达到怎么样的功效。
顺便说一句,不能用else X,而是elsif X

哦,我重写一遍吧.
回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

梦石
0
星屑
1035
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

8
发表于 2008-2-21 22:45:02 | 只看该作者
這個語法是錯的:
elsif 100 => c > 50

Ruby的語法和數學上的語法多少有點不一樣
雙重條件判斷要用到and
elsif 100 >= c and c > 50

另外就是樓上提到的問題了
c = a + b
代表 c 跟隨瞬間時候的 a 和 b 定值
以後a 和 b的變化與c 值再無關係。所以是下面的都是死循環語法。
與其
    a =+ 1
    b =+ 1
爲甚麽不直接
    c =+ 2
==a
如果一定要的話,就要對於c重新定值
重新調用
c = a + b
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
24 小时
注册时间
2007-2-9
帖子
397
9
 楼主| 发表于 2008-2-21 22:50:19 | 只看该作者
哦,明白了...好像写这么麻烦的东西还不如直接给C赋值...{/cy}
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-2 21:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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