问答详情
源自:4-2 分支结构之简单if-else语句

if((year%400==0)||(year%4==0&&year%100!=0))求大神教一下 怎么理解?

if((year%400==0)||(year%4==0&&year%100!=0))怎么理解?

提问者:qq_小男孩_4 2016-12-31 15:07

个回答

  • 木头人4120418
    2016-12-31 15:40:37

    首先,"||"是或运算,即此符号两边任意一边满足即整个表达式返回true,然后year%400==0表示year变量对400取余,并判定是否等于0(请注意在c语言里"=="才是等于,"="是赋值符号),然后"||"的后面,year%4==0和前面的year%400==0意思差不多, 只不过取余对象变成了4,&&是与运算,即此符号两边表达式必须同时满足,表达式才会返回true,后面的"year%100!=0"中,"!="表示不等于,而"||"符号两边用括号括起来是为了防止计算机运算时把优先级弄错(在c语言里括号里的表达式优先级要高许多),其实在这里有没有括号效果是一样的。

    王铮理解这句可以将其读为“判断year变量的值是否为400的倍数或为4且非100的倍数”

    说得有点混乱,将就看哈

  • Janson_
    2016-12-31 15:28:54

    400的倍数    或者4的倍数但是不能被100整除的数。