IOS开发学习基础--------C语言(二)

 第二章 条件分支结构

1.1   运算符优先级
IOS开发学习基础--------C语言(二)_第1张图片

1.2   短路情况
编码时容易发生短路情况:
1. &&运算时左边的表达式如果为假(0),那么右边的表达式就不再运行。因为整个关系表达式的结果已经能够确定为假(0);
2. || 运算时左边的表达式如果为真(非0),那么右边的表达式也就不再运行。因为整个关系表达式的结果已经确定为真(1);

1.3  条件分支
<a> if~else
<b> if~else if~else
<c> switch....case
//查找今天是第几天数
int searchDay()
{
    int year,month,day,sum=0;
    printf("输入年,月,日:\n");
    scanf("%d %d %d",&year,&month,&day);
    
    
    for (int i=1; i<month; i++) {
        
        switch (i) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                sum += 31;
                break;
            case 2:
                if (year % 4 ==0) {
                    sum += 29;
                }else{
                    sum += 28;
                }
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                sum +=30;
                break;
            default:
                break;
        }
    }
    printf("今天是第%d天,星期%d\n",sum+day,(sum+day)%7+1);
    return 0;

}
PS:(1.)所有的switch.....case 都能使用if~else if~else分支进行改写,但是反过来不一定成立。
(2.)   C语言在运算时讲非0作为真,0作为假。

你可能感兴趣的:(IOS开发学习基础--------C语言(二))