Ruby学习笔记一——语言基础

#一、这里是注释,是单行注释,类似于//

puts 3/5#这里是整数形式的结果

puts 3/5.0#这里是小数形式的结果

=begin

  这是多行注释,实际上这也是Ruby内嵌文档格式,类似于Java doc

  =end不但要有起止,还要缩进才有用。

=end

 

#二、连行

puts "Hello Ruby!"; puts "This is a "/

"String";#行尾的分号可以省略?‘/’是连行符,行尾即默认为一个语句的结束,可以没有分号,如果不希望它结束但想换行,需要加连行符'/'且之后不能再加行注释。

 

#三、print,puts,printf

#puts可以加多个参数在后面,每输出一个参数自动加一个换行符,而print不加换行符

puts "%d,%s",100,"string, hello!";

#用格式吕输出有点像C语言风格,用printf

printf "%d,%s",100,"string, hello!";

 

#四、一些语法知识

#0开头表8进制数,0x开头表16进制数,0b开头表二进制,单引号双引号都可引字符串

#一个数组中的元素可以互不相同,是弱类型语言

#区间:1..5表1,2,3,4,5。1...5表示1,2,3,4

#赋值可用这种形式a,b,c=3,4,5;

#比较运算时。==最弱,只要值相同即可,如1==1.0为真,eql?强一点,需要值为类型相同,如1==1,equal?最强需要两个变量的地址相同,如a=b,b==a才为真。

#<=>比较两个对象的大小,大于等于小于分别返回1,0,-1。如“aaa” <=> "abc"返回-1

#===用来返回右边的值是否属于左边的区间,如 (0..9) === 4返回true

#=~和!~分别用来表示正则表达式是否匹配,前者匹配时返回位置,不匹配时返回nil。后者返回true或false

 

#五、选择语句

#这是if语句,单行,多行情况,与Java及C/C++不同的是,它有then end等关键词。

(puts "/n1==1";puts "and 2==2";) if(1==1 and 2==2)

if(1==1) then puts"here is 1==1, then end"; end;

if (1==2)

  puts 1==2

elsif(2==2)

  puts "2==2 is true"

else

    puts 2434

end

#unless相当于if not.我觉得仅是如此的话,没什么意义

unless (1==2)

puts "unless 1==2"

end

#case的用法如下.结果:x=3;其它可能。case其实用得比较少,即使我自己编程也用得比较少。

x=3

case x

when 1..2

print "x=",x,";在 1..2中"

when 4..9, 0

print "x=",x,";在4..9,0中,或是0"

else

print "x=",x,";其它可能/n"

end

 

#六、循环语句

=begin

一. while(当…) 循环

while 条件

语句1; 语句2 ; 语句…

end

二. 单行 while 循环

( 语句1; 语句2 ; 语句… ) while 条件

=end

#while,单行while与单行if一样的写法,比c语言之类的,多了个end

a=1

while a <10

print a," "

a=a+1

end

print"/n"

#until,完全可以用while,多学一个意义不大,看得懂即可

a=1

until a >=10

print a," "

a=a+1

end

puts#用来换行比较方便

#1 2 3 4 5 6 7 8 9这个应该容易看懂

for i in 1..9 

print i," "

end

#在循环体内,如果遇到:

#break ,跳出当层循环;

#next ,忽略本次循环的剩余部分,开始下一次的循环;相当于continue

#redo ,重新开始循环,还是从这一次开始;

#retry ,重头开始这个循环体。

#循环语句示例:求50以内的素数

puts"/n求50以内的素数"

for i in 2..50 #50以内

f=true #起始假定每个数都是素数

for p in 2...i #比自身小的正整数(1和自身除外)

if i%p==0 #如果能整除

f=!f #那么这个数不是素数

break #并且跳出这层循环

end # if 结束

end #内层循环结束

print i," " if f #如果这个数保持起始假定,则打印

end #外层循环结束

#2 3 5 7 11 13 17 19 23 29 31 37 41 43 47

 

#七、控制语句次数的一些语法,看得懂即可,自己的话,刚开始会用if,while,for 等来解决问题

#times , upto , downto , each ,step

3.times { print "Hi!" } #Hi!Hi!Hi!

1.upto(9) {|i| print i if i<7 } #123456

9.downto(1){|i| print i if i<7 } #654321

(1..9).each {|i| print i if i<7} #123456

0.step(11,3) {|i| print i } #0369

 

#八、综合示例二,求素数,尽量多地展现语法,Ruby中没有大括号,用缩进来表示会清晰一些。

# E3.12-1.rb 求50以内的素数

puts

$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" #转换成字符串输出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值