20162311 2016-2017-2 《程序设计与数据结构》第四周学习总结
教材学习内容总结
1.条件语句if,switch以及相等运算符,关系运算符和逻辑运算符。
2.while,do,for等循环语句。
3.数组的概念和应用。
4.对象数组,命令行参数,变长参数表等与数组运用有关的知识
5.二维,多维数组。
教材学习中的问题和解决过程
- 问题1
在观看蓝墨云班课里数组那一节的视频时,老师在写main这个方法时写的是main(String args []),而教材上却是String[] args,两者有区别吗? - 解决方案
我在百度上查到了一下结果
其实这两种写法执行起来是没去别的,只是语法上有些不同而已 - 问题2
在写教材上的程序4.9时,编译通过后,运行时出现了以下问题
- 解决方案
按理说,编译通过的话,我写的代码是没有问题的,这时我注意到了错误提示
出现了异常,应该是运行时错误,但是提示“没有那个文件或目录”是什么意思呢?我又仔细看了教材上对这个程序的一些解释,发现这个程序是要从文件中读入URL,难道我是少了这个文件?为了验证我的猜想,我打开vim写入以下内容
保存后我再次运行程序,这次成功了,也证明我的猜想是对的
代码调试中的问题和解决过程
- 问题1
做完书上PP4.8后,我运行时出现了问题
弹出提示“Play again (y/n)?”后,我还没有输入,程序就自己退出了。 - 解决方案
我在码云上看了一下其他同学写的PP4.8,其中春旺同学的源代码给了我启发。下图是春旺同学的源代码
我注意到他创建了两个Scanner对象,一个是scan,一个是sca。而我只创建了一个。
于是我也加了一个
加上之后就能正常运行了。之前也有的程序好几个变量公用一个Scanner对象,这次为什么不行呢?我发现之前的程序里变量虽然不同,但是它们都是同一数据类型,而这个程序里,我设置的value是int类型,而another是字符串,所以要创建两个Scanner对象。 - 问题2
在做完书上的PP4.1后,张家铖同学试着运行了这个程序,但是出现了问题。1800不是闰年,但程序运行后却打印出1800年是闰年。
- 解决方案
发现问题后,我重新查看了我的源代码,果然发现了问题。
在判断是否为闰年时,我只判断了是否能被5整除或是否能被400整除,却漏了一种情况,1800能被5整除,能被100整除,却不能被400整除,而凡是能被100整除的都能被5整除,所以我的条件把能被100整除但不能被400整除的年份也判断成闰年了。于是我修改了源代码。
修改之后就能正确判断了。
代码托管
- 代码提交过程截图:
- 运行 git log --pretty=format:"%h - %an, %ci : %s" 并截图
- 代码量截图:
- 运行 find src -name "*.java" | xargs cat | grep -v ^$ | wc -l 并截图
- 运行 find src -name "*.java" | xargs cat | grep -v ^$ | wc -l 并截图
(statistics.sh脚本的运行结果截图)
上周考试错题总结
- 错题1:第一题,填空:Linux Bash中,查找当前目录中前天创建的Java文件的命令是(find . -name .java -ctime 2)。要寻找java文件用.java,可以匹配所有以.java为后缀的文件。
- 错题2:第二十四题,填空:Java中类方法使用(static)关键字声明。把static与import搞混了,import是用来引入类库中的类。
结对及互评
金立清同学很认真,遇到问题也会问清楚,但是博客中一些问题的解决方法不是很清楚,希望能搞懂。
点评过的同学博客和代码
感悟
本周学习了两章内容,任务比较重,花的时间也要多很多,而且后面的内容也越来越复杂,光看书上的内容,敲书上的代码是不能完全弄懂我要学的知识的,还应多和其他同学交流,多提问,或者自己找些参考资料。而且遇到的问题要及时记下来。本周的这些问题我是一遇到就把它写在博客的草稿里了,这样就不会最后写博客时忘了,而且也可以节省一些写博客的时间,这算是我的一点经验吧。
学习进度条
代码行数(新增/累积 | 博客量(新增/累积 | 学习时间(新增/累积 | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 113/113 | 1/1 | 10/10 | |
第二周 | 294/407 | 1/2 | 15/25 | |
第三周 | 433/840 | 1/3 | 15/40 | |
第四周 | 1169/2009 | 1/4 | 30/70 |
-
计划学习时间:25小时
-
实际学习时间:30小时
-
改进情况:没想到两章的内容这么多,没有规划好学习方案,导致花了太多时间。