博客
关于我
《你的月亮我的C》(二):代码风格:选择更好的条件和结构
阅读量:303 次
发布时间:2019-03-03

本文共 2690 字,大约阅读时间需要 8 分钟。

代码风格优化指南

好的代码风格不仅体现在代码的逻辑清晰性上,更需要通过适当的结构和简洁的语句来表达思路。良好的代码风格可以分为两大部分:更好的条件语句和更好的代码结构。以下是一些实用的优化技巧,帮助提高代码的可读性和效率。


一、选择更好的判断条件

  • 优化 continue 语句

    continue 语句可以通过改变 if 条件来省略时,可以尝试将 if 条件取反。例如:

    int main() {    int digit = 0;    while (1) {        scanf("%d", &digit);        if (digit != -1) {            continue;        } else {            digit = 9527;            break;        }    }    printf("%d", digit);    return 0;}

    可以改写为:

    int main() {    int digit = 0;    while (1) {        scanf("%d", &digit);        if (digit == -1) {            digit = 9527;            break;        }    }    printf("%d", digit);    return 0;}

    这样可以省略 continue 语句,代码更简洁。

  • do...while 转换为 while

    do...while 语句通常比 while 语句稍显复杂。可以通过以下方式优化:

    int main() {    int digit = 0;    do {        scanf("%d", &digit);        if (digit != -1) {            continue;        } else {            printf("%d", digit);            break;        }    } while (digit != -1);    return 0;}

    可以改写为:

    int main() {    int digit = 0;    while (digit != -1) {        scanf("%d", &digit);        if (digit == -1) {            printf("%d", digit);            break;        }    }    return 0;}

    这样可以简化代码结构,去掉不必要的 continue 语句。

  • 减少嵌套

    嵌套的 if 语句容易导致代码难以维护。可以尝试将所有条件一次性列出:

    int main() {    int A, B, C;    scanf("%d %d %d", &A, &B, &C);    if (A > 0 && B > 0 && C > 0) {        digit = 9527;    } else if (A < 0 && B > 0 && C > 0) {        digit = 952;    } else if (A < 0 && B > 0 && C < 0) {        digit = 95;    }    printf("%d", digit);    return 0;}

    这种写法比层层嵌套的条件更清晰。


  • 二、选择更好的代码结构

  • 替代 if....continue 结构

    if....continue 结构可以改为 if....else 结构,通过 if 的条件直接控制循环的退出:

    int main() {    int digit, i, num;    num = 100;    digit = i = 0;    while (i < MaxSize && !digit) {        if ((num = 2) > 1) {            i++;            continue;        }        digit++;    }    printf("%d", digit);    return 0;}

    可以改写为:

    int main() {    int digit, i, num;    num = 100;    digit = i = 0;    while (i < MaxSize && !digit) {        if ((num = 2) > 1) {            i++;        } else {            digit++;        }    }    printf("%d", digit);    return 0;}

    这样可以避免 continue 语句,使代码更易读。

  • 使用问号表达式

    通过问号表达式可以使代码更简洁:

    int main() {    int digit, i, g, j, k, result;    j = k = 10;    scanf("%d %d %d", &digit, &i, &g);    if (digit != 0) {        result = (j > k) ? j / i : k / i;    } else {        result = (j > k) ? j / g : k / g;    }    printf("%d", result);    return 0;}

    可以改写为:

    int main() {    int digit, i, g, j, k, result;    j = k = 10;    scanf("%d %d %d", &digit, &i, &g);    result = (digit != 0) ? (j > k) ? j / i : k / i : (j > k) ? j / g : k / g;    printf("%d", result);    return 0;}

    这样可以使代码更简洁明了。


  • 总结

    通过上述优化技巧,可以显著提升代码的可读性和可维护性。良好的代码风格不仅体现在语句的简洁性上,更重要的是通过清晰的结构表达逻辑思维。

    转载地址:http://bvtm.baihongyu.com/

    你可能感兴趣的文章
    OAuth2.0_环境搭建_Spring Security OAuth2.0认证授权---springcloud工作笔记139
    查看>>
    oauth2.0协议介绍,核心概念和角色,工作流程,概念和用途
    查看>>
    OAuth2授权码模式详细流程(一)——站在OAuth2设计者的角度来理解code
    查看>>
    OAuth2:项目演示-模拟微信授权登录京东
    查看>>
    OA系统多少钱?OA办公系统中的价格选型
    查看>>
    OA系统选型:选择好的工作流引擎
    查看>>
    OA项目之我的会议(会议排座&送审)
    查看>>
    OA项目之我的会议(查询)
    查看>>
    Object c将一个double值转换为时间格式
    查看>>
    object detection训练自己数据
    查看>>
    object detection错误之Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
    查看>>
    object detection错误之no module named nets
    查看>>
    Object of type 'ndarray' is not JSON serializable
    查看>>
    Object Oriented Programming in JavaScript
    查看>>
    object references an unsaved transient instance - save the transient instance before flushing
    查看>>
    Object.keys()的详解和用法
    查看>>
    OBJECTIVE C (XCODE) 绘图功能简介(转载)
    查看>>
    Objective-C ---JSON 解析 和 KVC
    查看>>
    Objective-C 编码规范
    查看>>
    Objective-C——判断对象等同性
    查看>>