查看: 1441|回复: 8

错了的代码

  [复制链接]
梦石
0
星屑
50
在线时间
24 小时
注册时间
2007-2-9
回帖
292
发表于 2008-2-21 22:30:12 | 显示全部楼层 |阅读模式

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

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

×
巨简单的一段代码...还是出错了
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 被版主水迭澜提醒,请楼主看到后对本贴做出回应。

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

孤独守望

梦石
0
星屑
3144
在线时间
1535 小时
注册时间
2006-10-16
回帖
4223

开拓者贵宾

发表于 2008-2-21 22:34:07 | 显示全部楼层
while c <= 50
a += 1
b +=1
end

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

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

使用道具 举报

梦石
0
星屑
50
在线时间
24 小时
注册时间
2007-2-9
回帖
292
 楼主| 发表于 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不会增加……

那该怎么改?
回复

使用道具 举报

冰王子

梦石
0
星屑
50
在线时间
34 小时
注册时间
2008-1-27
回帖
1810
发表于 2008-2-21 22:36:09 | 显示全部楼层
加上c = a + b
回复

使用道具 举报

梦石
0
星屑
50
在线时间
24 小时
注册时间
2007-2-9
回帖
292
 楼主| 发表于 2008-2-21 22:37:15 | 显示全部楼层
以下引用凌冰于2008-2-21 14:36:09的发言:

加上c = a + b

哦~3Q
回复

使用道具 举报

孤独守望

梦石
0
星屑
3144
在线时间
1535 小时
注册时间
2006-10-16
回帖
4223

开拓者贵宾

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

使用道具 举报

梦石
0
星屑
50
在线时间
24 小时
注册时间
2007-2-9
回帖
292
 楼主| 发表于 2008-2-21 22:40:24 | 显示全部楼层
以下引用IamI于2008-2-21 14:37:51的发言:

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

哦,我重写一遍吧.
回复

使用道具 举报

酱油的

梦石
0
星屑
1840
在线时间
2161 小时
注册时间
2007-12-22
回帖
3216

贵宾

发表于 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感谢您的热情解答~
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复

使用道具 举报

梦石
0
星屑
50
在线时间
24 小时
注册时间
2007-2-9
回帖
292
 楼主| 发表于 2008-2-21 22:50:19 | 显示全部楼层
哦,明白了...好像写这么麻烦的东西还不如直接给C赋值...{/cy}
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部