# 【知识精讲】在程序中学会缩进
## Part1
在学习`if`和`switch`的时候,你应该都不会忽略一点,就是我们的代码在每一行最开始的位置有着不同的空格数,我们称这些在每一行开始位置的空格为 **缩进(indent)**。
在程序设计中,对于同一个“层级”(同属一部分代码块)的代码,我们需要使用相同的缩进进行组织。通过缩进,我们可以让程序变得更为容易读懂。
## Part2
先让我们来看一个同学的代码:
~~~
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main() {
int first;
int second;
char operator;
cin>>first>>operator>>second;
switch (operator) {
case '+':
cout << "=" << firs t+ second << endl;
break;
case '-':
cout <<"="<<first+second<<endl; break;
default: cout<<"ERROR!"<<endl;
}
return 0;
}
~~~
这是不是和你刚才完成的代码很像呢?你能很容易的看出这些语句之间的层次关系吗?有没有觉得这个代码乱糟糟的?你知道怎么让这个代码变得更容易被维护呢?
## Part3
那么,让老师带你一起看看,在写程序的时候,有哪些地方必须要缩进呢?
* `if`,`else`,`switch`,`for`,`while`,`do`等关键字后用于组织代码块的大括号内(或这些关键字后单行代码块前)
* 定义函数的大括号内
* `goto`,`case`,`default`等关键字的冒号后组织的一系列语句
* `struct`,`enum`,`union`类型定义时和变量初始化时所用的大括号内
如果你在遇到上述情况的时候进行缩进,你会获得一个看起来舒服很多的程序。
## Part4
比如对于之前那份代码,如果我们按照上一个要求进行一下修改,我们统一在每一个层级都多添加四个空格作为缩进(也有地方用 222 个空格的,但非常不建议使用制表符 Tab 进行缩进),我们将得到:
~~~
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main() {
int first;
int second;
char operator;
cin >> first >> operator >> second;
switch (operator) {
case '+':
cout << "=" << first + second << endl;
break;
case '-':
cout << "=" << first + second << endl;
break;
default:
cout << "ERROR!" << endl;
}
return 0;
}
~~~
## Part5
在上面的例子中,我们进行了如下的缩进规范:
* 在`main`函数的大括号内进行了缩进的统一
* 在`switch`关键字后用于组织代码块的大括号内进行了缩进统一
* 将`case`和`default`关键字的冒号后组织的一系列语句进行了缩进统一
同时,请注意,上面的例子中也已经将我们讲过的换行问题进行了规范。在之后的学习过程中,你可要努力写出良好的、易于自己和别人维护的代码哦,在换行、缩进的问题上对自己可要严格要求了喔!
- 教材介绍
- 《编程初学入门常识》
- 什么是程序语言
- 【知识精讲】编程与编程语言
- 【选择测试】编程语言分类
- 【知识精讲】高级语言分类
- 【选择测试】编译与解释
- 【选择测试】程序员笑话-Java
- 熟悉键盘上用于编程的键位
- 【知识精讲】认识你的键盘
- 【知识精讲】中文和英文字符
- 【匹配测试】识别中英文符号
- 【选择测试】中英文符号的影响
- 【伴随编程】不要使用中文引号
- 【伴随编程】不要使用中文分号
- 【伴随编程】正确地输入符号
- 【选择测试】找出程序中的错误
- 初始工程师思维
- 【知识精讲】二进制思想
- 【选择测试】程序员笑话-凑整
- 【知识精讲】闭合的逻辑
- 【选择测试】程序员笑话-条件
- 程序员职业与生活
- 【知识精讲】程序员的发展方向
- 【知识精讲】程序员的装备
- 【知识精讲】程序员的健康
- 【选择测试】做一名健康的程序员
- 《C++程序设计》
- 前言
- 【知识精讲】编程与计算机科学
- 【知识精讲】编程与软件工程
- 【知识精讲】如何学习编程
- 你好C++
- 【知识精讲】你好,C++
- 【知识精讲】C++程序是如何开发的
- 【知识精讲】成为一名Power User
- 【伴随编程】让我们一起说你好
- 【知识精讲】你的第一个C++语言程序
- 【伴随命令】编译、运行你的程序
- 【伴随编程】将变量流式输出
- 【选择测试】变量的作用域
- 【知识精讲】变量与数据类型
- 【匹配测试】C++语言的入门概念
- 【知识精讲】在程序中学会换行
- 【选择测试】正确地换行
- 简单数学运算
- 【知识精讲】重新认识基本运算
- 【选择测试】运算符的理解
- 【伴随编程】做一下简单的运算
- 【伴随编程】a 的 n 次方
- 【知识精讲】数学函数
- 【伴随编程】让C++语言变成计算器
- 【伴随编程】计算球的体积
- 【匹配测试】数学世界知多少
- 【知识精讲】在程序中添加注释
- 【选择测试】正确地写注释
- 从伴随输入到变量地址
- 【伴随编程】 一个数字复读机器
- 【选择测试】理解标准输入输出
- 【伴随编程】一个加法计算器
- 【程序设计】A+B+C问题
- 【伴随编程】简单的I/O格式控制
- 【知识精讲】地址与取地址符
- 【伴随编程】看看我们的地址
- 习题一:面积与周长
- 【程序设计】矩形面积与周长
- 【程序设计】三角形面积与周长
- 【程序设计】圆形面积与周长
- 程序中的是与非
- 【知识精讲】是非的表示与关系运算
- 【伴随编程】验一验关系运算式
- 【选择测试】关系运算式求值
- 【知识精讲】如果的意义
- 【伴随编程】分段函数求值
- 【知识精讲】如果之后的如果
- 【伴随编程】五则运算器
- 【选择测试】分支的嵌套
- 【伴随编程】问号表达式
- 【知识精讲】是非之间的逻辑组合
- 【伴随编程】判断闰年
- 【程序设计】日期合法性
- 【知识精讲】多路顺序结构
- 【知识精讲】在程序中学会缩进
- 【选择测试】正确的缩进
- C++程序中的苦力
- 【知识精讲】使用循环结构
- 【选择测试】对比两种循环
- 【伴随编程】使用while循环
- 【填空测试】理解循环结构
- 【知识精讲】自减和自增运算符
- 【伴随编程】使用自增运算符
- 【知识精讲】for循环
- 【选择测试】for循环的使用
- 【程序设计】一大波好玩儿的程序
- 《代码能力快速提升》
- 《基础数据结构》
- 《搜索入门》
- 《动态规划基础》
- 《数论和基础数学》
- 《图和数基础》