Skip to content

命令式编程

命令式编程由一组详细的指令组成,让计算机以一定的顺序执行。之所以被称作“命令式”是因为开发者以非常具体的方式,准确地规定计算机必须做什么。

命令式编程强调描述程序怎么样一步一步地运行。

例如,我们要从一个数组中过滤出大于 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;
}

几乎所有电脑的硬件都是指令式工作。几乎所有电脑的硬件都能执行机器码,而机器码是使用指令式的风格来写的。较高阶的指令式编程语言使用变量和更复杂的语句,但仍依从相同的典范。

我们的实际生活中也存在类似的命令式行动,例如,菜谱和行动清单,每一步都是指令。

因为命令式编程的基础观念,不但概念上比较熟悉,而且较容易具体表现于硬件,所以大部分的编程语言都是指令式的。

特点

  • 过程导向:程序由一系列命令组成,这些命令顺序执行
  • 状态变化:通过变量和赋值语句,程序的状态在执行过程中不断变化
  • 控制结构:包括循环、条件语句等控制程序的执行流程

参考