20172313 2017-2018-2 《程序设计与数据结构》第六周学习总结
教材学习内容总结
- 学习了如何声明和使用一个数组。
- 学习了要进行边界检查,确保只因用数组有效范围之内的索引值。
- 学习了数组不同的声明方式和初始化方式。
- 学习了当数组保存对象时的使用。
- 初步学习了命令行实参的使用。
- 学习了如何在调用方法时怎样接受任意个数的参数。
- 初步学习了二维数组的使用
教材学习中的问题和解决过程
- 问题1:书上在介绍数组的概念时,说数组的索引值从0开始而不是从1开始能够使元素地址的计算更为简单。
- 问题1解决方案:如果索引为0的话,那么数据起始地址也就是0了,在计算的时候不用再进行相加运算,从而提高了访问效率。
- 问题2:刚开始学习命令行实参时,真的有点懵,不明白书上所要表达的意思是什么。
- 问题2解决方案:在看了书上的例题后,又从资料上又找了个示例,算是初步弄明白了。
-
代表运行是传入的参数,
main(String[] args){
System.out.print("args[0] = " + args[0]);
}
如果运行的时候,假设程序名是testMain.java
然后输入 java testMain hello;
输出的就是args[0] = hello; - 问题3:在学习书上的例题8.8的时候,实在是不知道increaseSize的含义到底是什么。
- 我一度还上网搜索并且还翻看了之前学习的内容,我以为是我在哪个部分的知识存在着遗漏,直到最后我才发现原来方法是写在代码最后的/(ㄒoㄒ)/~~,学习的进程才又一次得以进行。这也为我提供了一个编写代码的的格式,在前面先写上一个方法来解决问题,最后再对方法进行详细的阐述。
代码调试中的问题和解决过程
- 问题1:在做习题8_1的时候,运行代码时总显示我有非法字符。可我在代码里并没有其他的非代码字符啊。
- 问题1解决方案:我仔细的看了下,原来是我把分号用成中文的了,原来我用vim进行编写的时候,中英文的标点符号差距比较明显,所以也就更好区分。换用IDEA后暂时还没有习惯过来,以后还是要多加小心才是。
- 问题2:在编写习题8_5的时候,在屏幕上输出是否继续输入后并不能输入,直接跳过了这一不,并且显示标准方差不存在。
- 问题2解决方案:由于不能输出,所以我就想我的another=scan.nextLine到底是哪出了错误,我仔细检查了一遍,前后也不存在中英文半角符号用错的现象,语法上也没有出现问题,我就又联想到了以前王老师上课时所讲的问题,我原来也犯过这种错误,为了加深印象,在这里再一次进行记录。
-
nextInt只读取整数,并没有读取输入进去的\n,也就是说后面的nextLine会读取\n,但并不返回,会导致后面的一个语句显示没有读取输入就直接跳过了。
- 问题3:还是在做习题8_5的时候,不能正确的显示标准方差的值。
- 问题3解决方案:这个是由于粗心大意问题连计算时的表达式的代码都写错了( ̄_ ̄),这里也就不过多赘述了,直接附上正确的代码图。
- 问题3:在编写习题8_6的时候,提示我没有返回语句,可我明明是写了返回语句的。
- 问题3解决方法:我反复对代码进行了检查,发现我的return语句是在if条件语句之内的,也就是说在if语句内进行返回,在这个方法内却没有返回值,我把代码修改了一下,使得在这个方法内进行返回,详看下面的方法图。
代码托管
上周考试错题总结
- 错题1: The idea that program instructions execute in order (linearly) unless otherwise specified through a conditional statement is known as
A . boolean execution
B . conditional statements
C . try and catch
D . sequentiality
E . flow of control - 解析 “控制流程”描述了指令执行的顺序。 它默认为线性(或顺序),但通过使用控制语句(如条件和循环)进行更改。
- 原因:这道题完全就是粗心了,如果认真一点耐着性子好好地把英语读一遍是可以做对的。
- 错题2: If a break occurs within the innermost loop of a nested loop that is three levels deep
A . when the break is encountered just the innermost loop is "broken"
B . when the break is encountered, all loops are "broken" and execution continues from after the while statement (in our example)
C . when the break is encountered, all but the outermost loops are broken, and execution continues from the next iteration of the while loop (in our example)
D . this is a syntax error unless there are break or continue statements at each loop level
E . none of the above - 解析 最内层的循环(在我们的例子中为for循环)被破坏,执行从for循环结束后继续执行。
- 原因:这道题应该是属于我的英语问题了...没有很好的理解这道题的意思,还是应该好好的提升下自己的英语水平...
- 错题3: In order to compare int, float and double variables, you can use <, >, ==, !=, <=, >=, but to compare char and String variables, you must use compareTo( ), equals( ) and equalsIgnoreCase( ).
A . true
B . false - 解析 您也可以使用<,>,==,!=,<=,> =直接比较char变量,但对于任何字符串比较,必须使用compareTo(),equals()和equalsIgnoreCase()。
- 原因:这道题确实不是特别清楚,要好好的识记一下。
- 错题4: You might choose to use a switch statement instead of nested if-else statements if
A . the variable being tested might equal one of several hundred int values
B . the variable being tested might equal one of only a few int values
C . there are two or more int variables being tested, each of which could be one of several hundred values
D . there are two or more int variables being tested, each of which could be one of only a few values
E . none of the above, you would never choose to use a switch statement in place of nested if-else statements under any circumstance - 解析 switch语句只能在被测试的单个变量使用时使用,并且它是一个整型(int或Java中的char)。 此外,因为您必须枚举每个可能的测试值,所以switch语句只有在被测试值的数量很小时才有意义。
- 原因:这道题也是由于自己的疏忽,没有认真的读题导致了错误。
- 错题5: If a switch statement is written that contains no break statements whatsoever,
A . this is a syntax error and an appropriate error message will be generated
B . each of the case clauses will be executed every time the switch statement is encountered
C . this is equivalent to having the switch statement always take the default clause, if one is present
D . this is not an error, but nothing within the switch statement ever will be executed
E . none of the above - 解析 虽然写这样一个转换语句是不寻常的,但它是完全合法的。 开关语句执行的正常规则适用于在计算开关表达式后执行的匹配的case子句。 之后,依次执行所有后续子句,因为没有终止开关/大小写执行的中断语句。
- 原因:概念的理解不清。
- 错题6: A continue statement
A . may be used within a while or a do-while loop, but not a for loop
B . is identical to a break statement within Java loops
C . may be used within any Java loop statement
D . may be used within a for loop, but not within a while or a do-while loop
E . none of the above - 解析 尽管应该避免使用continue语句,但是如果可能的话,它们可以在Java的三个循环中使用:for,while和do-while。
- 原因:书本上的概念理解不清。
- 错题7: Given that s is a String, what does the following loop do?
for (int j = s.length( ); j > 0; j--)
System.out.print(s.charAt(j-1));
A . it prints s out backwards
B . it prints s out forwards
C . it prints s out backwards after skipping the last character
D . it prints s out backwards but does not print the 0th character
E . it yields a run-time error because there is no character at s.charAt(j-1) for j = 0 - 解析 变量j从字符串的长度向下计数到1,每次在位置j-1打印出字符。 长度为1的字符是打印的第一个字符,这是字符串的最后一个字符。 它会一直持续到j = 1,并在位置j - 1或第0个字符处打印字符,以便向后打印整个字符串。
- 原因:对题意的理解有问题。
- 错题8: In Java, it is possible to create an infinite loop out of while and do loops, but not for-loops.
A . true
B . false
解析 确实,循环可以是无限循环,但Java for循环也可以是无限循环。 在许多其他编程语言中,这种情况并非如此,其中for循环具有设置的起点和终点,但Java for-loops比大多数其他语言的for-loops灵活得多。
结对及互评
:
点评模板:
- 博客中值得学习的或问题:
- xxx
- xxx
- ...
- 代码中值得学习的或问题:
- xxx
- xxx
- ...
- 基于评分标准,我给本博客打分:XX分。得分情况如下:xxx
点评过的同学博客和代码
- 本周结对学习情况
- 结对同学学号1
- 结对照片
- 结对学习内容
- XXXX
- XXXX
- ...
- 上周博客互评情况
- 学号1
- 学号2
- 学号3
- 学号4
- ...
其他(感悟、思考等,可选)
这周的学习任务还是比较的重的,也增加了许多新的具有一定难度的内容,此外,在编写代码的过程中,我同样也发现了自己的一些问题,粗心大意的毛病还是没有改掉,也因此耽误了不少学习的进度。还是希望在以后的学习生活中得以改进和避免。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 126 | 1/1 | 20/20 | |
第二周 | 388/466 | 1/2 | 15/35 | |
第三周 | 706/1162 | 1/3 | 17/52 | |
第四周 | 1104/2266 | 1/4 | 20/72 | |
第五周 | 1126/3392 | 1/5 | 15/87 | |
第六周 | 906/4298 | 1/6 | 20/107 |
- 计划学习时间:20小时
- 实际学习时间:20小时
- 改进情况:以后还是要更加努力地敲代码才行!!!
参考资料
原文地址:https://www.cnblogs.com/yu-kunpeng/p/8849504.html
时间: 2024-10-06 20:53:47