中间在忙项目去了。隔了一个星期没有看ruby。接着上次的看,顺便还复习了之前的内容,这次用晚上的时间看了下ruby的跳转/循环操作
这次用了linux系统来编写,又得重新配置下ruby环境,不是linux配置这样的开发环境哪一个简单了得,于是我先试了下有没有预装ruby.
输入ruby -v于是有提示说还没有安装,但提供了ruby1.9.1,需要用到sudo apt-get install ruby1.9.1来安装,于是果断安装。接着又试了下在windows上
没有安装成功的scite。也输入了一下scite.于是又提示安装 sudo apt-get install scitt.感觉so easy。所以今天写的代码全部用scite这个神秘的工具编写
循环第一课for的一些迭代器不能少
rng = 1..9 for _var in rng do print _var.to_s + "\t" end puts puts "下面是迭代器的用法,和for的效果是一样的" rng.each do |_var| print _var.to_s + "\t" end
1 2 3 4 5 6 7 8 9 下面是迭代器的用法,和for的效果是一样的 1 2 3 4 5 6 7 8 9
puts "乘法口决" for _i in rng do for _j in 1.._i do print "#{_j.to_s}*#{_i.to_s}=#{_i.to_i*_j.to_i}\t" end puts end
乘法口决 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
另外一个比较常用的是while,里面包括了next/redo/return。主要看一下next和redo的区别,return也就是终止一个循环,和break一样,只是这里有返回值,下面主要看next/redo
next 是指终止当前循环,进入下一次循环,
puts "使用next循环" count = 1 while (count <=4) do if(count == 4) count += 1 next end puts count.to_s count +=1 end
使用next循环 1 2 3当count=4时,会在进入if,然后改变count,跳出本次循环,这时count=5不能进入while
redo和next是一样终止当前循环,进入下一次循环,但不同的是redo会不检查本次的条件是否成立,而直接进入循环
puts "使用redo循环" music = 1 while (music <= 4) do if(music == 4) music += 1 redo end puts music.to_s music += 1 end
使用redo循环 1 2 4 5这是会发现打印的数据和next不一样。是因为当music=4时,会进入if,然后和next一样,改变music的值为5,然后终止当前循环,进入下一次,但这时不会再检查music<=4这个条件,直接进入while.所以打印出music为5
over,利用这一点点时间看了一点点内容,感觉上班的人想挤点时间出来学东西还真难,除非公司安排。