首先我们来看一下下面这段代码
#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;}
再回头比较一下两段代码,是不是下面这一段看起来更舒服呢