`
索菲亚.  ぅ
  • 浏览: 16325 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Ruby 学习笔记[1]有疑问

    博客分类:
  • Ruby
阅读更多
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没有换行?

分享到:
评论
3 楼 索菲亚.  ぅ 2009-04-18  
Hooopo 写道

return false 后面if没有换行是这样的: 正常if语句是:


Java代码

if&nbsp;number&nbsp;%&nbsp;$arr[j]&nbsp;==0&nbsp;&nbsp; &nbsp;&nbsp;
#do&nbsp;something &nbsp;&nbsp;
end&nbsp;&nbsp;if number % $arr[j] ==0 
#do something
end这里是用了一个ruby习惯用法,被称为if语句修饰符(statement modifier) eg:


Java代码

flag=true&nbsp;&nbsp;
puts&nbsp;"Hello&nbsp;World!"&nbsp;if&nbsp;flag&nbsp;&nbsp;flag=true
puts "Hello World!" if flag所以你上面的代码如果要改,可以改成这样:


Java代码

#&nbsp;E3.12-1.rb&nbsp;求50以内的素数 &nbsp;&nbsp;
$arr=[&nbsp;]&nbsp;#建立一个全局数组&nbsp;$arr &nbsp;&nbsp;
$arr[0]=2&nbsp;&nbsp;
def&nbsp;add_prime(n)&nbsp;#定义方法&nbsp;将&nbsp;n以内的奇素数加入$arr &nbsp;&nbsp;
3.step(n,2){|num|$arr&nbsp;&lt;&lt;num&nbsp;if&nbsp;is_prime?num&nbsp;} &nbsp;&nbsp;
end &nbsp;&nbsp;
def&nbsp;is_prime?(number)&nbsp;#定义方法&nbsp;判断一个数是否是素数 &nbsp;&nbsp;
j=0&nbsp;#数组下标 &nbsp;&nbsp;
while&nbsp;$arr[j]&nbsp;*&nbsp;$arr[j]&nbsp;&lt;=number &nbsp;&nbsp;
if&nbsp;number&nbsp;%&nbsp;$arr[j]&nbsp;==0&nbsp;&nbsp;
return&nbsp;false&nbsp;&nbsp;
end &nbsp;&nbsp;
j&nbsp;+=1&nbsp;&nbsp;
end &nbsp;&nbsp;
return&nbsp;true&nbsp;&nbsp;
end &nbsp;&nbsp;
add_prime(50) &nbsp;&nbsp;
print&nbsp;$arr.join(",&nbsp;"),"\n"&nbsp;#转换成字符串输出&nbsp;&nbsp;# E3.12-1.rb 求50以内的素数
$arr=[ ] #建立一个全局数组 $arr
$arr[0]=2
def add_prime(n) #定义方法 将 n以内的奇素数加入$arr
3.step(n,2){|num|$arr &lt;&lt;num if is_prime?num }
end
def is_prime?(number) #定义方法 判断一个数是否是素数
j=0 #数组下标
while $arr[j] * $arr[j] &lt;=number
if number % $arr[j] ==0
return false
end
j +=1
end
return true
end
add_prime(50)
print $arr.join(", "),"\n" #转换成字符串输出

谢谢大虾昂!懂什么意思了。嘿嘿!!!解释的简单明了!
2 楼 Hooopo 2009-04-15  
头像很漂亮....
1 楼 Hooopo 2009-04-15  
return false 后面if没有换行是这样的:
正常if语句是:
if number % $arr[j] ==0  
#do something
end

这里是用了一个ruby习惯用法,被称为if语句修饰符(statement modifier)
eg:
flag=true
puts "Hello World!" if flag


所以你上面的代码如果要改,可以改成这样:
# 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
if number % $arr[j] ==0
return false
end
j +=1
end
return true
end
add_prime(50)
print $arr.join(", "),"\n" #转换成字符串输出


相关推荐

    Ruby学习笔记

    这个暑假回家没事干闲...恩,废话就少提,下面我学习Ruby的各个部分。其中Ruby风格这一部分是开放的,因为我暂时还没有形成自己的风格。我用xmind来记笔记,因此我只是把笔记搬到博客上,看看下面的图。好有爱啊!!!

    学习Ruby的笔记以及Demo源码.zip

    学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及...

    ruby学习笔记

    ruby基础笔记,自学笔记,ruby基础语法非常全面ruby基础笔记,自学笔记,ruby基础语法非常全面

    Ruby学习笔记(学习心得)

    Ruby学习笔记 01 类的属性与方法 02 访问控制 03 Container(Array/Hash) 04 Iterator 05 简单数据类型 06 范围 07 方法 08 条件控制 09 异常处理

    ruby笔记1ruby笔记1ruby笔记1

    标题中的"ruby笔记1ruby笔记1ruby笔记1"暗示了这是一份关于Ruby编程语言的学习笔记,可能包含了作者在学习过程中的重点、难点以及心得体验。描述中的内容重复了标题,进一步强调了这是关于Ruby的深入学习记录。标签...

    RubyStudy-master-ruby学习笔记

    学习 Ruby 的旅程即将开始! Ruby 是一种功能强大、灵活的编程语言,广泛应用于 Web 开发、脚本编写和系统管理等领域。下面是学习 Ruby 的一些实用建议:首先,了解 Ruby 的基本概念和语法。 Ruby 是一种面向对象的...

    rubyinstaller-devkit-3.0.2-1-x64 and Ruby 学习笔记.7z

    总的来说,`rubyinstaller-devkit-3.0.2-1-x64 and Ruby 学习笔记.7z`文件包含了一个在Windows上开始Ruby编程所需的基本组件和学习资源。通过安装Ruby和DevKit,你可以轻松地编写、编译和运行Ruby代码,同时结合学习...

    个人ruby学习笔记

    从给定的文件信息中,我们可以提炼出一系列关于Ruby编程语言的重要知识点,涵盖基础语法、变量类型、...以上总结了Ruby的一些基础知识点,这些内容对于初学者掌握Ruby编程语言至关重要,同时也是进一步深入学习的基石。

    精华ruby学习笔记和代码

    这个笔记里包含了ruby的整型,字符串,浮点数,布尔等基础数据类型,还有数组,哈希hash的用法, 类的定义,函数方法,以及对象定义,其他高级用法解释,除了笔记记录的语法糖之外,还包含了一些解释性的代码,帮助...

    学习 Ruby 的笔记以及 Demo(简介、语言特性、应用场景、Ruby 注释、Ruby 文件的构造与析构语句Ruby 变量等)

    Ruby 学习笔记 1、简介 定义:一种简单快捷的面向对象脚本语言 开发者:松本行弘 开发时间:1995年 设计目的:A PROGRAMMER'S BEST FRIEND【程序员的最佳朋友】 文件扩展名:rb 2、语言特性 真正的面向对象编程语言 ...

    学习 Ruby 的笔记以及 Demo.zip

    1. 面向对象:Ruby是一种纯面向对象的语言,意味着所有数据(包括基本类型)都是对象,每个对象都有其特有的方法。这使得编程更加灵活,易于理解和复用代码。 2. 动态类型:在Ruby中,变量的类型是在运行时自动确定...

    ruby编程学习笔记及demo

    Ruby是一种纯粹的面向对象编程语言。它由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)创建于1993年。 您可以在 www.ruby-lang.org 的 Ruby 邮件列表上找到松本行弘(まつもとゆきひろ/Yukihiro ...

    Ruby自学笔记

    以上是Ruby自学笔记中提及的关键知识点的详细解读,如果要学好Ruby语言,深入理解这些基础知识是非常必要的。Ruby语言的这些特性与规则构成了其独特的编程范式,使得它在动态语言领域中占有一席之地。

    Ruby元编程基础学习笔记整理

    ### Ruby元编程基础学习笔记整理 #### 一、语言构建(Language Constructs) 在Ruby中,诸如变量、类和方法等元素统称为语言构建(Language Constructs)。这些构建块是构成Ruby程序的基础。 ##### 示例代码分析 ```...

    关于ruby学习的资料

    Ruby的学习资源丰富多样,包括书籍、在线教程、社区论坛等,帮助初学者和进阶者深入理解其语法特性、编程思想以及实践应用。 "trap.chm"文件可能是一个帮助文档,通常用于存储各种信息和指南。在Ruby学习中,这样的...

    Redis全套学习笔记 (带章节目录) 完整版pdf

    本文是一篇关于Redis全套学习笔记的文章,主要介绍了Redis的基础知识、数据结构、持久化、集群、高可用、性能优化等方面的内容。通过本文的学习,读者可以全面掌握Redis的使用和应用,提高自己的技术水平和实践能力...

    ruby学习的源码

    本资料包针对Ruby学习者提供了丰富的资源,对于初学者来说是非常有价值的。 1. **Ruby基础知识**: - 变量:Ruby支持局部变量、实例变量、类变量和全局变量,它们以不同的符号开头,如`@`、`$`等。 - 类与对象:...

Global site tag (gtag.js) - Google Analytics