ruby新手,一个小程序有些不解的地方,希望前辈能指教一二。
ruby吧
全部回复
仅看楼主
level 1
assassion123 楼主
$arr=[ ]
$arr[0]=2
def add_prime(n)
3.step(n,2){|num|$arr <<num if is_prime?num } #这里的is_prime?num的num是什么意思
end
def is_prime?(number) #这里number的传参从哪里来?
j=0 #数组下标
while $arr[j] * $arr[j] <=number
return false if number % $arr[j] ==0
j +=1
end
return true
end
add_prime(50)
print $arr.join(", "),"\n"#这的.join是什么意思?
以上还望解答,不胜感激。
2014年07月21日 08点07分 1
level 1
assassion123 楼主
还有“return false”是在while范围,还是在if范围?
2014年07月21日 08点07分 2
level 1
assassion123 楼主
问题已解决,此贴终结
2014年07月21日 09点07分 3
level 2
求楼主解释一下,因为我也看不懂~~~[吐舌]
2014年11月14日 15点11分 4
level 2
1 num 是遍历array中当前index所在的element的值
2 def后面是定义这个method 穿参数的时候可以不用带括号 上面用到的传入的就是num
3 join是把array转换成一个string,中间用,隔开
2014年11月17日 06点11分 5
level 1
3.step(n,2){|num|$arr <<num if is_prime?num } #这里的is_prime?num的num是什么意思
#is_prime?(num),在{&block}循环中||中间为循环赋值变量,num在那里被赋值。
def is_prime?(number) #这里number的传参从哪里来?
#传参就是上一句的is_prime?(num),传入了num,这里建议加个括号。
print $arr.join(", "),"\n"#这的.join是什么意思?
数组join方法参见Ruby手册
2014年11月28日 06点11分 6
1