20172308《程序设计与数据结构》第二周学习总结
学号20172308 2017-2018-2 《Java程序设计》第2周学习总结
教材学习内容总结
1.第二章的课程预习比起第一章有了明显的难度,有很多内容需要自己动手去写,运行,看看结果是否符合预期。我觉得相比第一章,这周的编程应该更注重编写的过程体会与探索,写的代码行数倒是其次重要的。
2.关于一些具体概念,只要多看多记多用,就可以熟练运用了吧。忘掉了就看书,就不在博客上多写了。
教材学习中的问题和解决过程
- 问题1:第一个疑问是对于连接符的使用。如果连接符后是数字的话,可以不用引号就可以转化成字符串。这个时候想到的是加了引号会怎样,如果是单词句子又会怎样。
- 问题1解决方案:通过尝试,数字加不加引号都一样,但单词句子就不行(除非是声明好的变量名)。此外还有一个收获就是:对于一行写不下字符串在最后在写完“+”后,如果这个时候想要用“\n”换行,则一定要用引号引起来 ,变成字符串才能有效果。
- 问题2:在看到如图的一段代码时:
第一个String一直在使用(虽然不知道是干啥用的,但一直用到现在)。第二个String应该是声明了一个变量(书上好像是没有具体说),它的功能应该是储存文本型数据。奇怪的是它竟然没有变色,而且,出现两个String真的没关系吗(虽然结果上真的没关系) - 问题2解决方案:关于String百度了一下,说的很多,一点也看不下去。这里只是记录一下,等学了后面的内容应该就知道了吧。
咳,我觉得这个问题很有必要说一下。本来我呕心呖血在码云上写好的博客,却因为提交的时候网速太慢导致我做的所有修改没有保存下来。。。真的很气(气的我高数都没听好。。。)我觉得码云也应该推出像博客园一样的自动保存功能(气......)
代码调试中的问题和解决过程
- 问题1:在编课本例2.9时,尝试了一下不按照定义的整型和浮点型数值输入,果然出现了如图错误,也算加深了对这两种数据类型的了解。
- 问题2:在敲代码的时候突发奇想,这么多的语句是否有顺序呢?会影响结果的输出吗?答案是肯定的。我做了如下尝试:
如图是原原本本的代码:
后来我将画横线的两个语句对调位置,最后的结果截然相反,如图:
输入值完全相同,5是本来的结果,0.2则是调整后输出的结果。
而我的疑问是:对换位置应该没啥问题的吧,毕竟变量的名字都是定好了的,为什么是这样嘞 😤 - 问题3:书上的PP2.3,写完了程序,也成功的编译运行了,代码如下:
而问题是,输入数值之后,加减乘运算的结果都一致,但除法的结果总是0.0。结果如下:
- 问题3解决方案:通过本人不懈的思考发现了一个问题 😎 我输入的两个数除过之后是无限循环小数,而定义的变量放不下这个数据。而整除的结果确实正确输出了 💫
【更新1】有点绝望,又试了几个数据,发现了这个除法是自动保留一位小数的,而且3/2=1.0 。最后我将输入的两个整型数据改成一个整型,一个浮点型,最后的运算都是正确的(为什么会这样?)都改成浮点型也能正确计算。
【更新2】看书有点不仔细,像这种类型的,要进行强制类型转换符(double)才能正常运算 - 问题4:书上的例题,代码如图:
这个代码是可以正常编译运行的,但运行的结果与预期不同,运行截图如下:
返回的数据应该一行一行出现的,但不知道为什么最后两句一起出现了。
-问题4解决方案:代码应该是正确的,为了验证情况,我又加了一行,提示用户输入“hobby”。在如图的位置:
而运行的结果是:原来一起出来的两行还是一起显示,补充的一行倒是自己显示了一行。然后。。。我就不知道该怎么办了。最后在云班课看到学长的回答:在college后面再复制一行同样的语句,结果确实能一行一行输出了(虽然不知道为啥,而且两句一样的话不会报错)
代码托管
其他(感悟、思考等,可选)
- 1.最近发现本地上传码云失败,原因是在码云上做了修改,但是在本地没有更新,即git pull。正是上周上传失败的原因(据说老师上课说了,但是我没印象,应该是忘了)
- 2.根据上周学长给的建议,将每章的程序分章放(确实很清晰)。
每章建立src和bin目录,将class文件放在bin目录中,Java放在src目录。
但是这就有个问题:如果bin目录不是放在src目录当中,那么就不能通过命令Javac -d bin *.java
将class文件产生在bin目录中。我尝试了一下,如果硬要将两个目录并列放置,只有通过命令javac -d 到达bin的绝对路径 *.Java
才能成功编译,但是绝对路径很长(直接进入bin目录编译也是不行的),很麻烦。如图:
我又想偷懒一下用命令javac -d /../bin *.java
进行编译,但却被提示权限不够。同样的运行也要进入bin目录才行。Java -cp
是不行的。
如图:
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 309/309 | 1/2 | 20/20 | |
第二周 | 269/540 | 2/4 | 18/38 |
(emmm....这个代码统计脚本好像有点问题)
参考资料
- 百度百科
- Java程序设计教程