20172319 2018.04.01-04.11 《Java程序设计》第5周学习总结
目录
教材学习内容总结
第五章 条件判断与循环
- 布尔表达式: (1) 控制流:语句的执行顺序,若无方法调用使其改变,会依序执行,条件及循环语句可以控制执行流程。
(2) 相等性运算符:==及!=,用于判断两个数值是否相等;关系运算符:<、<=、>、=>。优先级都低于算数运算符。
(3) 逻辑运算符:与&&、或||、非!。 - if语句: (1) if语句:true执行,false不执行。
(2) 语句块:语句的集合。
(3) 嵌套:一个判断结束之后的另一个判断。注: else子句与其前未配对的if相匹配。适当的缩进有利于语句的理解。 - 数据比较: (1) 浮点数比较:精确度的存在影响了其比较。较好方法: 设置误差标准,当二者差绝对值小于其时可以认为二者相等。
(2) 字符比较:Unicode字符集 定义了java中相对顺序。数字在字母前,大写在小写前。
(3) 比较对象:equals方法。a.equals(b)
字符完全相同时返回true,否则返回false。 - while语句: (1) 无限循环:逻辑错误导致无法输出false,循环一直进行。
(2) 嵌套循环:外层执行一次,内层完整循环。
(3) break和continue语句:跳出循环;再次计算控制条件,若为true,再次执行循环体。 - 迭代器: 一个对象,提供方法来一次处理集合。
(1) 迭代器对象的基本方法:hasNext()
(2) 读取文本文件。 - ArrayList类: 组织管理对象集。
第六章 其他条件判断和循环
- switch语句: 指定字符或整形值与case子句中的值匹配,若满足则执行case语句的内容,都不满足则执行default默认语句。注: break保证只有一条case被执行。
- 条件运算符(?:): 条件?true:false
- do语句: 先执行,再判断。while语句后有;。注: 至少执行一次。
- for语句: 知道循环次数;(初始条件;Boolean;循环体)。
教材学习中的问题和解决过程
-
问题1: 倘若switch里面没有default呢?
-
解决: 系统可不会有什么默认的空语句,倘若在switch中找不到适合的条件,那就像if中的任一条件都不满足一样,略过整个语句。
-
问题2: 倘若一个case语句没有break会怎么样?
-
解决: 一直执行下去,直到遇见break,即未满足条件的case语句也会被执行。
-
问题3: 关于浮点数比较中谈及的精度到底是什么?
-
解决: 有时候转换为进制数是无限循环小数,系统无法表示,只能读到某一数位,因此有可能导致数据发生些许误差,而系统又能判断他们不一样,因此,为了方便只能使用课本所描述的较好方法
代码调试中的问题和解决过程
- 问题1: 使用循环时出现了无限循环。
- 解决: 刚开始对循环的理解还不够,只能把原来的句子全面修改,随着练习的增多,逐渐知道怎么才能避免循环语句的出现,对循坏的使用也更加得心应手。
- 问题2: 编写12x12时发现没有自己想要9x9式的表格
- 解决: 当时就连switch都用上了,结果还是不行;后来想按数字的1-12一个个循环满足
这样循环的简便就失去了他的意义,最后把课本里里外外看了一遍,发现有的内层循环外最后都会有System.out.println()
,结果修改其中的循环调试了一波,发现这个相当于给每一次外层循环的结果建立分割线,最后加到了自己的编程里,得到了自己想要的结果。
代码托管
上周考试错题总结
- 错题1:
- 理解: 方法都要返回一些东西,因此必须有返回语句。当要编写一个不返回任何内容的方法时才不需要返回语句,一般在头部用“void”作为其返回类型的方法。
- 错题2:
- 理解: 声明一个构造函数甚至是任何类型的void都是违法的,因此会产生语法错误。
- 错题3:
- 理解: 只有驱动程序需要主要方法。
- 错题4:
- 理解: 当时还没学continue,所以不知道其有什么用,其用于退出循环的其余部分并再次测试条件。
- 错题5:
- 理解: 变量的声明位置影响其使用范围,如果在方法内声明与实例数据同名的变量,那么实例数据将在该方法中“隐藏”,因为引用将是局部变量。
- 错题6:
- 理解: Comparable类需要定义一个compareTo方法,该方法将比较两个对象并确定其中一个是否等于另一个,或者是否小于或大于另一个,并用负int,0或正int来响应。由于如果两个对象相等,compareTo以0响应,所以不需要定义等于方法。
其他(感悟、思考等,可选)
- 本周虽然敲的东西没有学习类时敲得那么多,但敲的时候需要细致的思考和理解,不然条件及循环语句在应用时会出现错误,从而导致没能输出结果或是出现无限循环。
看到其他人的博客,自己也去找了些关于markdown语法的更多知识,关于css样式,暂时还没看,之后学了会用进去。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 202/202 | 1/2 | 15/15 | 积极主动敲代码 |
第二周 | 490/692 | 1/3 | 18/33 | 善于思考 |
第三周 | 581/1273 | 1/4 | 15/48 | 善于完善 |
第四周 | 1857/3130 | 1/6 | 33/81 | 累 |
第五周 | 655/3787 | 1/7 | 22/103 |