条件判断,我觉概念以及相关的理解其实在学习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种基本的条件判断的知识,逻辑结构上都差不多,而关键字大相径庭,有必要专门的记忆掌握以下。因为几乎所有的程序都会用到条件判断,所以这是一个需要关注的地方。
说实话我觉得那些能掌握很多门编程语言的人真的很了不起,尽管说编程语言在底层都是相通的,但是想记住每种编程语言不同的关键字很费劲。对于我们这些对计算机了解还没有那么深的人来说,能掌握多门编程语言,并且可以自由切换、玩转自如,看起来遥不可及呀。
不过,我们应该去尝试,我相信慢慢一点点的去学习,不急于求成,是可以让自己容纳另一门编程语言的。因为在这个学习的过程中,不仅学习了新的知识,对原来所学的确实也可以回顾到。一切都在向着美好的方向发展啊。
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种基本的条件判断的知识,逻辑结构上都差不多,而关键字大相径庭,有必要专门的记忆掌握以下。因为几乎所有的程序都会用到条件判断,所以这是一个需要关注的地方。