c语言编程时候的问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 13:01:52
看到一个关于万年历的编程,其中有一段,如下
switch(i)
{
case 1 : m="31";break;
case 2 : monthday +=31;
if((year % 4 ==0 && year % 100 !=0) || (year % 400 ==0))
m = 29;
else
m = 28;
break;
case 3 : monthday += m; m = 31;break;
case 4 : monthday += 31;m = 30;break;
case 5 : monthday += 30;m = 31;break;
case 6 : monthday += 31;m = 30;break;
case 7 : monthday += 30;m = 31;break;
case 8 : monthday += 31;m = 31;break;
case 9 : monthday += 31;m = 30;break;
case 10: monthday += 30;m = 31;break;
case 11: monthday += 31;m = 30;break;
case 12: monthday += 30;m = 31;break;

当中的‘+=’是什么逻辑呢?课本上没哦、、

"a += b;"
这是一种复合写法,展开即为"a = a + b;"
同理,还会有以下类似写法:
a -= b; ——> a = a - b;
a &= b; ——> a = a & b;
a ^= b; ——> a = a ^ b;
a |= b; ——> a = a | b;
......
......

a+=b,就是a+b的值赋给a,作为a的新值

a+=b就是a=a+b