学号 20162310 《程序设计与数据结构》第4周学习总结
教材学习内容总结
- 本章主要围绕布尔表达式展开学习
学习了各种关系运算符(算数运算符优先级高于关系运算符)的表达方式(“==,!=,<=”等)
学习了三种逻辑运算符 !(非);&&(与);||(或) - if 语句的学习
- if-else语句的学习
- 条件运算符的使用,方便简洁但是难读
- 学习了十分实用的嵌套式if语句(注意缩进格式也可能造成程序出错)
- 浮点数的比较并不是简单的使用关系运算符“==”就可以表示的,因为 二进制的位数不一定相等
- 使用comepareTo方法来判定字符串之间的相对顺序
- 字符与字符串的比较是基于Unicode字符集的
- switch语句与break语句(switch语句不能用于布尔类型,浮点数类型以及String类型,只能用于char,byte,short或int类型)
- while语句的使用(避免进入无限循环)
- 同样学习了while语句的嵌套式循环
- do语句以及for语句(for语句循环头由三个部分组成,分别为初始化,布尔表达式以及增量)
以上为第四章的学习内容
- 了解了数组的概念:数组是保存一列值得对象。可由它的名称来只带整个数表,也可以用数组中的位置单独引用表中的每个元素
- 数组是一个对象,必须要进行实例化
- 下标运算符[]在Java全部运算符中具有最高的运算优先级
- 数组中的两种声明是等价的(int[] grades; 和 int grade[];)
- 可以通过初表值来实例化一个数组(int[] xx ={0, 1, 2};)
- 对象数组,利用String方法来使得数组中的每个位置都指向不同的地址
- 了解了String[]参数的用途,命令行参数(例如args)保存在String对象组中,并传递给main方法
学习了二维数组的表示方式(例如int[][]即在数组中的元素也为数组)随后引申至多维数组
以上为第七章的学习内容
教材学习中的问题和解决过程
- 问题1:在之前的学习中遇到了一元运算符的概念,对于二元运算符的概念感到疑惑
- 问题1解决方案:在本章的学习中我发现了逻辑运算符就是二元运算符,因为它带有两个操作数 XX&&XX;XX||XX
- 问题2:刚接触循环语句以及条件语句的时候有些糊涂,对于if, while, if-else, for, do之间的差别,什么时候该用什么语句一直不清楚
问题2解决方案:通过书本以及视频资料的学习我渐渐理清楚了这些的不同
if语句
if语句可以让程序选择是否执行一条特定的语句,有着先判定后执行的特点。
if-else语句
if-else语句本身就有着非真即假的性质,在if和else各自下的执行语句只能有一个运行。
do语句
do语句类似于while语句,不同之处在于do循环在循环体执行后计算条件的值。且do循环至少执行一次的特点也是很重要的。do循环以do作开头,以while做结尾。
while语句
while语句重复执行相同的语句,直到它的条件为假时为止。
for语句
for语句同样为循环语句,与do和while不同的是,for语句清楚知道循环体将要被执行的次数,并且for循环的循环头含有用分号分隔开的三个部分,这在这些语句之中是十分特殊的,我们能在其中清楚的知道初始值是多少,判断条件是什么以及每次运行的增量为多少。
代码调试中的问题和解决过程
问题1:PP41的编程中遇到了几个低级错误和一个逻辑错误
低级错误是for后面多加了“;”然后一直没找到这个细微的错误
逻辑错误是if后的条件没有设好,使得1900变为了闰年
- 问题1解决方案:后来我放弃了一次性输入条件选择了嵌套式条件语句
从这一程序中我体会到了一口气吃不成胖子的道理,嵌套式虽然使得程序运行的时间延长,但是在思路上更加清晰明了,减少了逻辑错误发生
代码托管
由于这周学习的内容有些多,所以这周的代码量令我感到惊讶,但是实际上我并不因为这个数字而欣喜,因为虽然我打了全部的例题,但对其还是一知半解,第四章有些例题我尽量不看书上的步骤自己尝试打还是出现了很多错误。所以我有很深的感受就是还是要自己尝试多打代码,有自己的思考和理解,虽然和例题的有出入但是效果是一样的就行。下一周的学习我会尽量减少盲目打代码的时间,珍惜例题,通过自己的思考,在一些必要的格式下进行编程,否则会使得我在书中学习的各个知识点产生脱节。
上周考试错题总结
- 填空:10&9 的结果是(8)
- 判断:调用Math类中的方法时,不用使用new生成Math对象(对)
- Java中生成对象必须使用new关键字。(错)
- DRY是(Don’t Repeat Yourself)的缩写
- 填空:Java中(Math.pow(2,10))计算出2的10次方的值。
- 填空:声明表示一星期中各天的枚举类型(enum Week{MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,STAURDAY,SUNDAY;} )
结对及互评
我的同伴是20162314王译潇,由于上周的事情,他在这周的java学习中踏实了许多,也不过于注重自己的代码量了,希望他能在下周的学习中更加积极主动,发挥自己的数学特长于程序的编辑中。
其他
这周的学习,我花在教材上的时间有些长,但是效果不是很明显,虽然读的时候都懂,但是由于知识点过于多,零碎,所以在我开始做作业的时候遇到了许多的障碍,知识不能很好的融会贯通,例如在PP48中运用到了教材47页的boolean equalsIgnoreCase (String str)方法,因为我一直想不到以至于我运用while语句的时候一直出现错误。类似情况出现很多次!
下周的学习中,我想把时间多花在自己操作打代码,练习上,一来整理1,2,4,7章的知识,为后续的知识打下基础,二来也能熟练操作,避免因为低级错误而消耗时间。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增) | 重要成长 | |
---|---|---|---|---|
第四周 | 1200/800 | 1/1 | 20h |
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)