首先我们来看一下下面这段代码

#include<stdio.h>
int main()
{
    int  divisor;
    int  n;

    scanf("%d",&n);
    if(n==2)
    {
        printf("YES\n");
    }
    for(divisor=3; divisor<n;divisor+=2)
    {
        if(n%divisor==0)
        {
            printf("NO\n");
            break;
        }
        printf("YES\n");
    }
    return  0;
}

是不是觉得这个代码没什么问题,也挺好看的?但有没有觉得这样的代码挺乱的?应该不难发现,有些空格的地方,这代码没有空格,而又在有些地方加了很多个空格,是不是很怪异?

从代码风格的角度,程序中有哪些地方必须要使用空格呢?主要有以下4点:

  • +,-,>,==,|,&&等前后都需要参加运算的运算符号前后;
  • if,switch,for,while等关键字、函数定义名和之后的左小括号之间;
  • 不在行尾的逗号、分号之后;
  • 不加空格会导致不符合语法的情况下(例如 return 之后);

举例子来说,上面那段代码中

  • if(n==2)就应该被写成if (n == 2);
  • n%divisor==0就应该被写成n % divisor == 0;

除了必须空格来保证可读性的地方外,还有一些地方是可以选择空格的:

  • 左大括号前、右大括号后
  • #include和头文件、被引入文件之间
  • 非运算符冒号之后 

再有一点,就是不要额外的写空格:

  •  return 0;这中间连续多出来的空格就是不合适的,我们应该只保留一个空格return 0;

 下面来看一下修改了之后的代码:

#include <stdio.h>
int main()
{
    int divisor;
    int n;

    scanf("%d", &n);
    if (n == 2)
    {
        printf("YES\n");
    }
    for (divisor=3; divisor<n; divisor += 2)
    {
        if (n % divisor == 0)
        {
            printf("NO\n");
            break;
        }
        printf("YES\n");
    }
    return 0;
}

 再回头比较一下两段代码,是不是下面这一段看起来更舒服呢

更多推荐

C语言入门学习——如何在程序中使用空格