20172319 2018.04.01-04.11 《Java程序设计》第5周学习总结

时间:2022-04-29 19:43:50

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类: 组织管理对象集。

第六章 其他条件判断和循环

  1. switch语句: 指定字符或整形值与case子句中的值匹配,若满足则执行case语句的内容,都不满足则执行default默认语句。注: break保证只有一条case被执行。
  2. 条件运算符(?:): 条件?true:false
  3. do语句: 先执行,再判断。while语句后有;。注: 至少执行一次。
  4. for语句: 知道循环次数;(初始条件;Boolean;循环体)。

教材学习中的问题和解决过程

  • 问题1: 倘若switch里面没有default呢?
  • 解决: 系统可不会有什么默认的空语句,倘若在switch中找不到适合的条件,那就像if中的任一条件都不满足一样,略过整个语句。

  • 问题2: 倘若一个case语句没有break会怎么样?
  • 解决: 一直执行下去,直到遇见break,即未满足条件的case语句也会被执行。

  • 问题3: 关于浮点数比较中谈及的精度到底是什么?
  • 解决: 有时候转换为进制数是无限循环小数,系统无法表示,只能读到某一数位,因此有可能导致数据发生些许误差,而系统又能判断他们不一样,因此,为了方便只能使用课本所描述的较好方法


代码调试中的问题和解决过程

  • 问题1: 使用循环时出现了无限循环。
  • 解决: 刚开始对循环的理解还不够,只能把原来的句子全面修改,随着练习的增多,逐渐知道怎么才能避免循环语句的出现,对循坏的使用也更加得心应手。
  • 问题2: 编写12x12时发现没有自己想要9x9式的表格
  • 解决: 当时就连switch都用上了,结果还是不行;后来想按数字的1-12一个个循环满足 这样循环的简便就失去了他的意义 ,最后把课本里里外外看了一遍,发现有的内层循环外最后都会有 System.out.println(),结果修改其中的循环调试了一波,发现这个相当于给每一次外层循环的结果建立分割线,最后加到了自己的编程里,得到了自己想要的结果。

代码托管

20172319 2018.04.01-04.11 《Java程序设计》第5周学习总结
20172319 2018.04.01-04.11 《Java程序设计》第5周学习总结
-------------------------------------------------------------

上周考试错题总结

  • 错题1:
    20172319 2018.04.01-04.11 《Java程序设计》第5周学习总结
  • 理解: 方法都要返回一些东西,因此必须有返回语句。当要编写一个不返回任何内容的方法时才不需要返回语句,一般在头部用“void”作为其返回类型的方法。
  • 错题2:
    20172319 2018.04.01-04.11 《Java程序设计》第5周学习总结
  • 理解: 声明一个构造函数甚至是任何类型的void都是违法的,因此会产生语法错误。
  • 错题3:
    20172319 2018.04.01-04.11 《Java程序设计》第5周学习总结
  • 理解: 只有驱动程序需要主要方法。
  • 错题4:
    20172319 2018.04.01-04.11 《Java程序设计》第5周学习总结
  • 理解: 当时还没学continue,所以不知道其有什么用,其用于退出循环的其余部分并再次测试条件。
  • 错题5:
    20172319 2018.04.01-04.11 《Java程序设计》第5周学习总结
  • 理解: 变量的声明位置影响其使用范围,如果在方法内声明与实例数据同名的变量,那么实例数据将在该方法中“隐藏”,因为引用将是局部变量。
  • 错题6:
    20172319 2018.04.01-04.11 《Java程序设计》第5周学习总结
  • 理解: 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

参考资料