不同的编程语言,对于判断语句,循环语句等的写法是不一样的。但对于同一问题,我们只关心算法,于是就提出了伪代码,统一一下判断语句怎么写,循环语句怎么写,这样无论程序员学的是 C++,还是 JAVA,还是 python 就都可以用伪代码来表达了。

看下维基百科的定义。伪代码(英语:pseudocode),又称为虚拟代码,是高层次描述算法的一种方法。它不是一种现实存在的编程语言(已经出现了类似伪代码的语言,参见Nuva);它可能综合使用多种编程语言的语法、保留字,甚至会用到自然语言。

它以编程语言的书写形式指明算法的职能。相比于程序语言(例如Java、C++、C、Delphi 等等)它更类似自然语言。它是半形式化、不标准的语言。我们可以将整个算法运行过程的结构用接近自然语言的形式(这里可以使用任何一种作者熟悉的文字,例如中文、英文,重点是将程序的意思表达出来)描述出来。使用伪代码,可以帮助我们更好的表述算法,不用拘泥于具体的实现。

人们在用不同的编程语言实现同一个算法时意识到,他们做出来的实现(而非功能)很不同。程序员要理解一个用他并不熟悉的编程语言编写的程序,可能是很困难的,因为程序语言的形式限制了程序员对程序关键部分的理解。伪代码就这样应运而生了。

当考虑算法功能(而不是其语言实现)时,伪代码常常得到应用。计算机科学在教学中通常使用伪代码,以使得所有的程序员都能理解。

比如这里的百钱买百鸡问题。

for x ← 1 to 20 do
for y ← 1 to 33 do
z ← 100 - x - y
if 5 * x + 3 * y + z / 3 = 100 and z mod 3 = 0 then
output 公鸡 x 只,母鸡 y 只,小鸡 z 只
end if
end for
end forC ++ 实现
#includeusing namespace std;
int main() {
for (int x = 1; x < 20; x++) {
for (int y = 1; y < 33; y++) {
int z = 100 - x - y;
if (5 * x + 3 * y + z / 3 == 100 && z % 3 == 0) {
cout << "公鸡 " << x << " 只," << "母鸡 " << y << " 只," << "小鸡 " << z << " 只" << endl;
}
}
}
system("pause");
}JAVA 实现
package cc.windliang;
public class Test {
public void buy() {
for (int x = 1; x < 20; x++) {
for (int y = 1; y < 33; y++) {
int z = 100 - x - y;
if (5 * x + 3 * y + z / 3 == 100 && z % 3 == 0) {
System.out.println("公鸡 " + x + " 只," + "母鸡 " + y + " 只," + "小鸡 " + z + " 只");
}
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stubTest t = new Test();
t.buy();
}
}python3 实现
for x in range(1,20):
for y in range(1,30):
z = 100 - x - y
if 5 * x + 3 * y + z / 3 == 100 and z % 3 == 0:
 print("公鸡 " + str(x) + " 只," + "母鸡 " + str(y) + " 只," + "小鸡 " + str(z) + " 只")

可以看到伪代码是给人看到,并不能让计算机去执行,而用具体语言实现的话,就可以让他们在各自的环境下运行。

为了答题,把我压箱底的 VS 编译器打开了,点个赞吧 ^ ^