我的Ruby学习历程之初识条件判断

2017-09-08 08:26:59来源:CSDN作者:hmyixiu人点击

分享
条件判断,我觉概念以及相关的理解其实在学习Java时就已经有一个很深的印象了,学习Ruby的条件判断更注重的是发现语法上与Java不同的地方,记住每种使用的关键字,可以在使用的时候想的到。
说实话我觉得那些能掌握很多门编程语言的人真的很了不起,尽管说编程语言在底层都是相通的,但是想记住每种编程语言不同的关键字很费劲。对于我们这些对计算机了解还没有那么深的人来说,能掌握多门编程语言,并且可以自由切换、玩转自如,看起来遥不可及呀。
不过,我们应该去尝试,我相信慢慢一点点的去学习,不急于求成,是可以让自己容纳另一门编程语言的。因为在这个学习的过程中,不仅学习了新的知识,对原来所学的确实也可以回顾到。一切都在向着美好的方向发展啊。

Ruby中的条件判断语句大致分为以下三种:
(1)if 语句
(2)unless语句
(3)case语句

既然是条件判断,当然需要 条件表达 式了,并且这个条件表达式的状态只能是 真 和 假。但是这里和Java有什么不一样呢?Ruby中除了 false和nil 为假外,其余的所有东西都是 真!
注:为了让返回真假值的方法可以一目了然,这些方法在命名的时候,都会在最后写一个" ? ",我们自己定义方法的时候最好也要接受这个规定。
条件直接可以通过 && ||  ! 连接,表达的意思和Java是一样的。

1、if语句
    if  条件1  then
        执行的语句1
     elsif   条件2   then
        执行的语句2   
    elsif   条件3   then
        执行的语句3   
    else
        执行的语句4
    end
其中的 then 可以省略,现在的我感觉是能省则省,哈哈,以后自己就按照没有then来写吧;其中最后是以 end 所结尾的,这个东西不能省略,和定义方法的时候很像。这个 elsif 跟Java 的else if 很像,有木有,其实表达的意思也是一模一样的。

2、unless语句
解释上说它的意思和 if语句是完全相反的,if是在条件成立的时候执行的,而unless是在条件不成立的时候执行的,来仔细体会一下:
a = 3

if a=3
  print a
end
==>这时会输出 3
unless a=3
  print a
end
==>这个时候什么也不输出
表面所显示的意思肯定可以看出来,但是怎么翻译怎么说更清楚呢?仔细想想,unless的英文解释是:
        conj. 除非,如果不
        prep. 除…之外
if的英文解释是
        conj. (表条件)如果;即使;是否;(表假设)假如
        n. 条件;设想
if 是 如果,unless是如果不 ;
我觉得之所以纠结是因为 脑海中一直记得unless是除非,然而除非这个词语,在咱们汉语中确实很容易让人纠结,很多逻辑思维题也爱出这个。

如果下雨,睡觉  ==>下雨了,我睡个觉把
如果不下雨,睡觉 ==>不下雨,我来睡个觉
除了 下雨 之外,睡觉 ==>除了下雨之外,剩下的就是不下雨了,才睡觉
除非下雨, 睡觉 ==> 除非下雨,不下雨的时候,我可是要睡觉的

除非满足这个条件,否则我会这行这些语句;
我终于明白是什么意思了。。。

当然unless中也可以使用else,不过我的感觉是 if可以解决的问题,还是不要用unless了,感觉容易出错似的。

3、case语句
跟Java中的switch语句表达的是一个意思,但是这里用的词不太一样呀。
其实用if来判断就够了,但是如果每次判断的都是一个对象,很明显用case更简洁一些。
使用方式如下:
case  要比较的对象
when  值1  then
    语句1
when  值2  then
    语句2
when  值3  then
    语句3
else
    语句4
end

这里的then也可以省略,并且也是以end结尾的;
看完后我觉得使用上是一样的,但是这个case、when让我一时半会接收不了,哈哈;这里的case相当于switch,when相当于case,else相当于default;不需要break或其他跳出,这一点还是可以接收的,哈哈。
这里还有个厉害的就是,一个when里,可以指定多个值,这样看起的更灵活了,也能节省代码。
还有更厉害的,when后边直接写类型,如果 要比较的对象的类型匹配的话,就相当于满足条件了

Ruby中还有一个你没见过的东西,三等号 "===",它所表示出来的意思有一种通过case里when的那种感觉。不过===左边好比是when后边的东西,右边好比是case后要判断的对象,进行判断后会返回true或false。


这一次掌握了3种基本的条件判断的知识,逻辑结构上都差不多,而关键字大相径庭,有必要专门的记忆掌握以下。因为几乎所有的程序都会用到条件判断,所以这是一个需要关注的地方。

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台