对于一个初学者来说,这门语言是纷繁复杂、晦涩难懂的。并且,当我们试图想要理清它的知识结构的时候,却发现我们很难找到它们相互之间的联系。所以,我建议,我们不应该从知识本身入手,而是反过来,从它所要实现的目标或者应用方面着手。
首先,让我们清空我们的大脑,将注意力转移到几个关键词上:条件语句、循环语句、数组、集合。
我们来考虑第一个关键词:条件语句。条件语句又称分支语句或者选择语句。它所实现的功能是根据不同的条件作出选择。最简单的条件语句即if语句,它相当于一个判断,满足条件即执行,否则跳过。其次便是if...else语句,即二选一。接着还有if...else if...else,即多选一。如果我们很轻易的掌握了这些内容,那么我们便可以来考虑一下条件语句的嵌套。我们为什么要使用嵌套呢?因为有时我们需要一个大前提。比如说,你要找一个女朋友。那么,首先你要判断对方是不是女的。在”女的“这个大前提下,你再判断她是不是你不是你喜欢的类型。这种判断可以一直延续下去,这就是嵌套。
接下来让我们考虑第二个关键词:循环语句。什么是循环语句呢?要弄清这个概念,我们只需要考虑一个最简单的案例,求和从1加到100。如果我们自己来算的话,会算很长时间,如果我们不用高斯公式。然而,如果我们使用for循环,便可以很轻易的实现。首先,我们定义一个循环变量与一个总和。然后,给出一个判定条件。最后,给出我们的循环内容。具体来说,我们让循环变量从1开始,判断它是否<=100,如果是,则把它加到总和上,然后让循环变量加1,再进入循环。。。这样,我们最终得到了总和。很自然的,如果我们多尝试几次,便能把它和条件语句结合起来使用。循环语句也有自己的嵌套,循环语句的嵌套主要用于排序和打印。我们来讨论一下排序问题。假如有n个自然数,我们对它从小到大排序。我们是怎样做的呢?我们的基本原理是,先确定最小的数,把它放到一号位,再确定第二小的数,把它放到二号位,依此类推。。。具体来说,为了确定最小的数,我们拿一号位上的数依次与后面的数比较,如果后面的某个数比它小,则互换两者的位置。这样,比较完一圈之后,我们成功的把最小的数换到了一号位。二号位、三号位等也是同样的道理,与它们后面的数依次比较,换位。我们再来说说打印问题。打印问题的基本原理是,一行一行的打印,即先打印第一行,再打印第二行,依此类推。而打印每一行的时候,又要一个数据一个数据的打印。所以,一般情况下,这种打印需要两个循环。外循环控制行,内循环控制列。具体来说,当外循环变量为初值的时候,打印第一行,转入内循环,内循环的循环变量逐次增加,直到打印完第一行的所有数据,转入外循环,打印第二行。。。
最后,让我们来考虑一下数组和集合。首先,我们要问的是,什么是数组?什么是集合?它们有什么用?我们来举个例子,比如说,我们现在有这样一组数5,7,3,54,32,45,我们要对它从小到大排列。前面说了,对于这种排序,我们可以使用for循环的嵌套。表面上看起来,这是行得通的。然而,当我们实际去做的时候,却遇到了麻烦。我们不能把每个数和它的位置对应起来。换句话说,我们写不出循环的判断条件和循环的内容。因为,每次的条件和内容都不一样。然而,一维数组的存在便能很好的解决这个问题。一个数组就好像一排座位,这些座位的座位号依次排列,使得我们可以很方便的在循环语句中使用它们。我们要做的,就是把这些数依次放到这些座位上。当我们要使用这些数的时候,只要利用它们的座位号就能简单的引用它们了。二维或者多维的情况依次类推,只不过它们的坐标也相应的变成了二维坐标或者多维坐标,你可以联系数学中的坐标来加以理解。集合呢?它相当于一维数组的推广。在数组中,元素必须为同一类的数。而在集合中,元素可以是数或者字符。这样做的好处在于,如果我们要定义不同类型的数或者字符,不用定义多个数组,而可以把它们统统放入集合里。当然了,我们也同样通过座位号去引用它们。
好了,到了这里,也许你会问,其他知识怎么办,它们就无关紧要吗?我是这样来考虑的,我把上述几个作为核心概念或者形象的描述为房屋的整体框架,而其他知识则类似于砖头和瓦砾。因为它们都非常简单也容易理解,只要记住会用就行了。这些内容包括:输入、输出语句,运算符、转义字符、变量、常量的声明、类型的转换、string类、Math类。在各种的类中还有各种不同的方法,比如字符串的各种操作、Datetime的有关处理。对于这些内容,我的建议是,把它们整理出来记到某个固定的地方。当你想不起某个方法的时候,再去看看也就是了,没必要非得把它们全背会,这种做法实在太过于愚蠢,也完全不符合实际需求。