命令式编程
命令式编程由一组详细的指令组成,让计算机以一定的顺序执行。之所以被称作“命令式”是因为开发者以非常具体的方式,准确地规定计算机必须做什么。
命令式编程强调描述程序怎么样一步一步地运行。
例如,我们要从一个数组中过滤出大于 5 的所有元素。
ts
const arr = [1, 4, 3, 6, 7, 8, 9, 2]
const result = []
for (let i = arr.length - 1; i >= 0; i--) {
if (arr[i] > 5) result.push(arr[i])
}
console.log(result) // [ 9, 8, 7, 6 ]go
package main
import "fmt"
func main() {
arr := []int{1, 4, 3, 6, 7, 8, 9, 2}
result := []int{}
for i := len(arr) - 1; i >= 0; i-- {
if arr[i] > 5 {
result = append(result, arr[i])
}
}
fmt.Println(result) // [9 8 7 6]
}py
arr = [1, 4, 3, 6, 7, 8, 9, 2]
result: list[int] = []
for i in range(len(arr) - 1, -1, -1):
if arr[i] > 5:
result.append(arr[i])
print(result) # [9, 8, 7, 6]cpp
// go:build ignore
// +build ignore
#include <iostream>
int main() {
int arr[] = {1, 4, 3, 6, 7, 8, 9, 2};
int result[4];
int result_count = 0;
for (int i = 7; i >= 0; i--) {
if (arr[i] > 5)
result[result_count++] = arr[i];
}
for (const auto &i : result) {
std::cout << i << " "; // 9 8 7 6
}
std::cout << std::endl;
return 0;
}几乎所有电脑的硬件都是指令式工作。几乎所有电脑的硬件都能执行机器码,而机器码是使用指令式的风格来写的。较高阶的指令式编程语言使用变量和更复杂的语句,但仍依从相同的典范。
我们的实际生活中也存在类似的命令式行动,例如,菜谱和行动清单,每一步都是指令。
因为命令式编程的基础观念,不但概念上比较熟悉,而且较容易具体表现于硬件,所以大部分的编程语言都是指令式的。
特点
- 过程导向:程序由一系列命令组成,这些命令顺序执行
- 状态变化:通过变量和赋值语句,程序的状态在执行过程中不断变化
- 控制结构:包括循环、条件语句等控制程序的执行流程