Project1

标题: 错了的代码 [打印本页]

作者: DemonPanda    时间: 2008-2-21 22:30
标题: 错了的代码
巨简单的一段代码...还是出错了
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行...出错了
那该怎么写? [LINE]1,#dddddd[/LINE]
如果问题解决了就结帖吧~

此贴于 2008-2-21 15:04:28 被版主水迭澜提醒,请楼主看到后对本贴做出回应。
[LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: IamI    时间: 2008-2-21 22:34
while c <= 50
a += 1
b +=1
end

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

这两段代码有问题……while是只要条件为真就执行下面的内容,这两个都是死循环,因为循环过程当中c不会增加……
作者: DemonPanda    时间: 2008-2-21 22:35
以下引用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不会增加……

那该怎么改?
作者: 凌冰    时间: 2008-2-21 22:36
加上c = a + b
作者: DemonPanda    时间: 2008-2-21 22:37
以下引用凌冰于2008-2-21 14:36:09的发言:

加上c = a + b

哦~3Q
作者: IamI    时间: 2008-2-21 22:37
LZ的代码有点乱,显然是要么初学,要么从别的语言转过来的。
这样吧,先说一下要达到怎么样的功效。
顺便说一句,不能用else X,而是elsif X
作者: DemonPanda    时间: 2008-2-21 22:40
以下引用IamI于2008-2-21 14:37:51的发言:

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

哦,我重写一遍吧.
作者: 禾西    时间: 2008-2-21 22:45
這個語法是錯的:
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 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: DemonPanda    时间: 2008-2-21 22:50
哦,明白了...好像写这么麻烦的东西还不如直接给C赋值...{/cy}




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1