橘子明星是什么?
以前听一个大佬说,在编程中,最困难的不是编程本身,而是思考如何编程。当时不明白,后来慢慢体会到。 举个例子:
如果我们要实现一个功能,需要两个变量,x和y,并且确定了它们之间的关系。一般我们会想到这样写代码: 可以看到,我们确定了函数的形式(输入和输出)之后,又确定了参数a和b的名称以及它们的类型(这里为了方便讨论,我们把a和b的类型确定为int型),然后通过两个for循环来完成功能的计算。但是,如果我们将函数的定义修改一下,变成这样: 这时候我们需要增加两个变量,z和w,并且定义新的函数关系式。然后我们同样需要两个for循环来计算结果。
这个时候,我们的思路就卡住了。因为无论你怎么思考,你都无法确定z和w应该设定为什么样的值,也无法确定for循环应该满足什么条件。这就是思考的困难之处。 而像C语言这种无类型的弱类型语言就解决了这个问题。你可以把变量命名为任意名字,只要你自己记得是什么意思就行了;你也可以随意给变量赋值,只要不做违反规则的事,程序可以执行下去即可。在这种语言里,你要实现上面的功能,完全可以写成这样: 这样,虽然形式上变乱了,但思想却很容易表达——先根据a和b的数值计算出x和y,然后再计算出z和w。计算机执行这样的代码比上面那种严格定义变量和函数类型,然后不断迭代计算要方便许多!这就降低了编程的难度。
而Java或者C#这种强类型语言就解决了这种问题。你必须非常明确地告诉计算机,这个变量的取值范围只能是在1到100之间,这个是整数,不能是字符串,也不能是浮点数;这个变量是用来存储一个数的,而这个数又是属于什么类型的(比如这里是整型,不能是浮点数)。只有这样,计算机才能知道怎么执行你的代码。虽然Java和C#增加了编译成机器码的难度,但是降低了编程的难度。