puts"演示while not"
a=1
while not a>10
print a," "
a+=1;
end
puts
for i in 1...10
print i," "
end
puts
puts"演示break"
c='a'
for i in 1..4
if i==2 and c=='a'
c='b'
print"\n"
break
end
print i,c,""
end
puts "\n\n"
puts
puts"演示next"
c='a'
for i in 1..4
if i==2 and c=='a'
c='b'
print "\n"
next
end
print i,c," "
end
puts
puts"演示redo"
c='a'
for i in 1..4
if i==2 and c=='a'
c='b'
print "\n"
redo
end
print i,c," "
end
puts "\n\n"
puts"演示retry"
c='a'
for i in 1..4
if i==2 and c=='a'
c='b'
print "\n"
retry
end
print i,c," "
end
puts "\n\n"
puts "演示50以内的素数"
for i in 2..50
f=true
for p in 2...i
if i%p==0
f=!f
break
end
end
print i," " if f
end
puts
puts"演示times,upto,downto,each,step"
puts
4.times{print "Hi!"}
puts
1.upto(9){|i| print i if i<7}
puts
9.downto(1){|i| print i if i<7}
puts
(1...9).each{|i| print i if i<7}
puts
0.step(11,3){|i| print i}
puts
# E3.12-1.rb 求50以内的素数
$arr=[ ] #建立一个全局数组 $arr
$arr[0]=2
def add_prime(n) #定义方法 将 n以内的奇素数加入$arr
3.step(n,2){|num|$arr <<num if is_prime?num }
end
def is_prime?(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" #转换成字符串输出
上面代码中我有点不太明白,为什么在return false后面没有换行?换行后,下面在加一个end,结果就不一样了,结果为(2,3)。。。请大家赐教
# E3.12-1.rb 求50以内的素数
$arr=[ ] #建立一个全局数组 $arr
$arr[0]=2
def add_prime(n) #定义方法 将 n以内的奇素数加入$arr
3.step(n,2){|num|$arr <<num if is_prime?num }
end
def is_prime?(number) #定义方法 判断一个数是否是素数
j=0 #数组下标
while $arr[j] * $arr[j] <=number
return false
if number % $arr[j] ==0
j +=1
end
end
return true
end
add_prime(50)
print $arr.join(", "),"\n" #转换成字符串输出
把end再换一个位置,结果就成(2)
# E3.12-1.rb 求50以内的素数
$arr=[ ] #建立一个全局数组 $arr
$arr[0]=2
def add_prime(n) #定义方法 将 n以内的奇素数加入$arr
3.step(n,2){|num|$arr <<num if is_prime?num }
end
def is_prime?(number) #定义方法 判断一个数是否是素数
j=0 #数组下标
while $arr[j] * $arr[j] <=number
return false
if number % $arr[j] ==0
j +=1
end
return true
end
end
add_prime(50)
print $arr.join(", "),"\n" #转换成字符串输出
主要是不理解,为什么return false 后面为什么if没有换行?