剑英陪你零基础学c#系列(二)顺序
作者声明与感悟
作者:李剑英
泰斗原文:http://www.taidous.com/forum.php?mod=viewthread&tid=33219&_dsign=5caa3071
上一次教程发布后,收到了不少反馈,部分反馈促使我对内容进行了修改,但也有一些反馈令人崩溃,在此我想表达一些看法。有些人很奇怪,阅读文章后,不提及自己的感受,而是质疑“做这个有什么用?能赚钱吗?”或者说“你做这个对我没用,还不如做点别的”。
我郑重声明:我写作仅仅是因为自己想写,能否赚钱或获得其他好处与他人无关;我写的内容对他人是否有用,也与我无关。我会继续写作,选题完全由我自己决定。我并非职业写手,没有责任为特定的人创作特定的内容。
作为在内容产业摸爬滚打十来年的人,我深感遗憾,因为自己未能产出有价值的内容。我羡慕独立游戏的非商业属性、独立立场和独立思考。但为何独立游戏在中国发展停滞,众多游戏公司热衷于抄袭?这或许是因为“你做这个有什么用”这类不知所谓的质疑和噪音充斥着环境,使得独立和个性的发展面临重重阻力。
中国的经济发展已经为个性化提供了土壤,但我们缺乏个性化的氛围,周围满是噪音。从事这个行业,我们是否真的要用这种恶俗的心态去做事?如果自己无法忠于内心,至少在他人忠于自己时,请保持沉默。语言是有力量的,人作为社会化动物,很容易受到他人影响。在一个无人质疑忠于自我的环境中,或许有人会有所作为;而在一个质疑声不断的环境中,或许有人会选择放弃。为了守护那一点点可能性,我愿意与任何质疑者断绝往来。
编程溯源:致敬祖师爷
成为程序员的起点
当你完成了“Hello World”程序,你就可以被称为程序员了。没错,成为程序员就是这么简单,只要写过代码,你就是程序员。现在,让我们向编程界的祖师爷——图灵致敬。
图灵与图灵机
图灵是一位同性恋者(性别男,爱好男)。我们或许没有图灵那么卓越,这可能与个人爱好也有一定关联。图灵提出了用机器处理问题的理论模型——“图灵机”。(我们团队的“曰天”同学正在录制一段“图灵机”的模拟游戏视频,期待不久后能附上该视频链接。)
冯诺依曼与计算机基础
冯诺依曼奠定了计算机的工程结构和二进制的基本思想。如果算上个人电脑的发展,相关先驱众多,但本文先重点致敬这两位祖师爷。如今的计算机架构依然遵循着他们的设计理念。有趣的是,很多有三年编程经验的人都未必能理解二进制的概念。在本系列教程中,我们不会深入讲解二进制等复杂内容,因为编程的坑很多,不必每个都去尝试。我们将继续深入编程的泥潭。
编程与计算机原理的联系
计算机执行顺序
计算机是顺序执行的,它执行的是机器指令。C系语言的作用是将自然语言翻译成机器指令,并且与机器指令保持高度的顺序一致性。简单来说,大家记住“有顺序”这三个字即可。上一篇教程的核心是“是颗树”,结合起来就是“代码是颗树,执行有顺序”。
结构化编程
代码的执行顺序在专业领域被称为结构化编程,这是一个重要的编程领域。通常在学习语法的前三个月,主要学习的就是结构化编程。大家需要记住“结构化编程”这个概念,并且要明白这不是短期内(如21天)就能掌握的。本系列教程作为课外教辅,不会像传统教程那样详细列举所有知识点,我们会帮大家梳理重点,更多的学习还需靠大家自己。市面上有很多“21天学会XXX”的资料,但编程学习并非如此简单。
结构化编程将代码的执行顺序分为顺序、选择和循环三类。不过,很多知识仅靠阅读是学不会的,我们将教大家通过调试来观察代码的执行顺序。
代码执行顺序的调试与观察
调试准备
以之前的“Hello World”项目为例,默认情况下有一个启动按钮,点击它即可开始调试。开始调试后,可能感觉与之前没有区别,接下来我们进行一些操作。打开调试菜单,记住一些常用的快捷键(不同设置下快捷键可能不同),主要记住“切换断点”(F9)和“逐语句”(F11)。
断点设置与程序暂停
选中程序入口所在行,按下F9,该行会出现一个红点,这表示设置了断点。程序执行到断点处会暂停,此时调试者可以观察程序状态并决定后续操作。启动程序,程序会在断点处停止。
观察顺序执行
按下“逐语句”(F11),高亮区域和小黄箭头会移动,这体现了代码的执行顺序。此时控制台可能没有输出,因为黄色高亮区域表示即将执行的代码,尚未实际执行。再次按下F11,控制台应该会输出相应内容。继续逐语句执行,直到程序结束,也可以使用“调试菜单下的停止调试”来中断程序。
不同类型的代码执行顺序
顺序性执行
顺序性执行就是代码从上至下依次执行,前面调试“Hello World”程序时展示的就是顺序性执行。
选择性执行
结构化编程中的选择顺序,常见的有if - else语句块。在开始学习时,要记住代码是颗树,理清if - else语句块的结构并不难,有括号作为标记。大家可以通过调试来感受选择顺序,即代码会根据条件选择执行某一部分,有些代码会执行,有些则不会。此外,还有switch语句,要注意case的结尾是冒号(这是一种标签语法),其他语句结尾通常是分号。case语句通常需要配合break来结束,它并非完整意义上的树结构,目前先通过调试来熟悉它。
循环性执行
循环执行从for循环开始,有人认为for循环不符合人类思维习惯,但只要坚持练习21天,应该就能适应。除了for循环,还有while和do - while循环。大家通过调试掌握观察方法后,就可以通过百度等途径学习这些循环语法的细节。另外,还有用于遍历迭代器的foreach语法,其细节相对复杂,但同样可以通过调试来掌握。
总结与展望
本次教程强调了代码执行顺序的重要性,希望大家认识到“有顺序”这一核心要点。编程学习中,理解代码的执行顺序至关重要。下一次我们将探讨计算与类型的相关内容。
哈库拉玛塔塔。