黑马程序员技术交流社区

标题: 判断闰年(逻辑表达式) [打印本页]

作者: jianjiao    时间: 2015-9-3 15:44
标题: 判断闰年(逻辑表达式)
代码如下:
if(!(year%4&&year%100||!year%400))

看了代码,不明白意思。

比如:year = 5    !(5%4 = 1 ->为真,5%100 = 5 ->为真,(!(5%400 = 5 ) -> 为假)-为真)->为假
能写下详细的思路吗?
         
作者: to_love    时间: 2015-9-3 16:07
闰年与平年的区别呀!(!(5%400 = 5 ) -> 为假)-为真)这句错着的那
作者: jianjiao    时间: 2015-9-3 16:12
前面还有一个 :!
我是括起来的为
作者: jianjiao    时间: 2015-9-3 16:15
to_love 发表于 2015-9-3 16:07
闰年与平年的区别呀!(!(5%400 = 5 ) -> 为假)-为真)这句错着的那


前面还有一个 :!
我是括起来的为
作者: Joker_999    时间: 2015-9-3 16:43
首先你的知道什么是闰年
1)能被4整除但不能被100整除
2)能被100整除又能被400整除
然后还得知道逻辑运算符优先次序,那么这道题就简单了
if(!([(year%4)&&(year%100)]||(!year%400)))
先扒开一层,最外层是非!,那么()里即
[(year%4)&&(year%100)]||(!year%400)则为假
即(year%4)&&(year%100)为假
且(!year%400)为假
所以能判断闰年

作者: jianjiao    时间: 2015-9-3 17:16
Joker_999 发表于 2015-9-3 16:43
首先你的知道什么是闰年
1)能被4整除但不能被100整除
2)能被100整除又能被400整除

判断是否为 闰年:
1)能被4整除但不能被100整除
2)能被400整除
和你上面那个有区别吗?
作者: Joker_999    时间: 2015-9-3 17:24
jianjiao 发表于 2015-9-3 17:16
判断是否为 闰年:
1)能被4整除但不能被100整除
2)能被400整除

结果没区别吧! 能被400整除肯定能被100整除
不过我指的是闰年定义
作者: jianjiao    时间: 2015-9-3 18:04
Joker_999 发表于 2015-9-3 17:24
结果没区别吧! 能被400整除肯定能被100整除
不过我指的是闰年定义

{:2_33:}  好像要是哦
好哈哈哈
作者: 胡茂    时间: 2015-9-4 11:07
坐看交流,第一个的代码表示没看懂.
作者: 唐肖虎    时间: 2015-9-4 11:20
楼主为什么不这样写呢 if((y%4==0&&y%100!=0)||y%400==0){}
作者: Ahcn    时间: 2015-9-28 21:55
坐看大神解析,我看都没看懂,只能猜出个大概




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2