C扩展:控制语句

1. switch-case省略break

实现输入年和月,返回该月的天数的函数。

int days_of_mouth(int year,int mouth){
    int days;
    switch(mouth){
        case 1:
            days = 31;
            break;
        case 2:
            days = (year%4==0&&year%100||year%400==0)?29:28;
            break;
        case 3:
            days = 31;
            break;
        case 4:
            days = 30;
            break;
        case 5:
            days = 31;
            break;
        case 6:
            days = 30;
            break;
        case 7:
            days = 31;
            break;
        case 8:
            days = 31;
            break;
        case 9:
            days = 30;
            break;
        case 10:
            days = 31;
            break;
        case 11:
            days = 30;
            break;
        case 12:
            days = 31;
            break;
        case 1:
            days = 31;
            break;
        default:
            days = -1; // 表示错误
    }
    return days;
}

省略break:

int days_of_mouth(int year,int mouth){
    int days;
    switch(mouth){
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            days = 31;
            break;
        case 2:
            days = (year%4==0&&year%100||year%400==0)?29:28;
            break;
        case 4:
        case 6:
        case 9:
        case 11:
            days = 30;
            break;
        default:
            days = -1; // 表示错误
    }
    return days;
}

2. for嵌套

  1. 打印*组成的n*m的长方形矩阵
    例如:
    输入
    4 5
    
    输出
    *****
    *****
    *****
    *****
    
  2. 打印*组成n*n的三角形
    例如:
    输入
    4
    
    输出
    *
    **
    ***
    ****
    
  3. 打印*组成n*(2*n-1)的三角形
    例如:
    输入
    4
    
    输出
    *
    ***
    *****
    *******
    
  4. 打印九九乘法表
  5. 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
    程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后,再去掉不满足条件的排列。
  6. 输入长度为n数组,打印出数组元素两两组合的结果。

3. 无限循环/死循环

无限循环/死循环是指判断条件永远为真的循环。
例如:

while(1){
   /* 如果条件为真将重复执行的语句 */
}

或者

for(;;){
  /* 如果条件为真将重复执行的语句 */
}

通常程序中要避免出现无限循环/死循环,特殊情况也会适当使用无限循环/死循环,这时可通过方式break方式退出。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。