20172330 2017-2018-1 《Java程序设计》第五周学习总结
教材学习内容总结
第五章
- 首先是对各种各种运算符的了解:刚开始以为相等就是=,还有其他一些符号都挺简单的,然后在进一步学习知道了“==”与“!=”都是相等型运算符,而“!”,“&&”,“||”则分别代表非,与,或。
教材学习中的问题和解决过程
- 其次是if语句:
1.if语句由保留字if、紧随其后的布尔表达式及一条或一组语句构成。条件表达式包含在括号内,并且其运算结果只能是ture或者false。如为ture,执行if语句中的语句,然后执行if后的语句;如为false,则不执行if语句中的语句,然后继续执行if语句中的语句。
2.if-else语句可以使程序在某个条件表达式的值为true时执行一段代码,其值为false时执行另一段代码。
3.使用语句块:在Java中,可以用语句块来代替任意一条语句。语句块是由括号括起来的多条语句的集合。
4.if语句的嵌套:a.一条if语句中嵌入另一条if语句,这种情况称为if语句的嵌套。b.在一个嵌套的if语句中,else子句和它前面最近且未匹配的if语句相匹配。 - 还有while语句:
1.while语句是一种循环语句,像if语句一样计算布尔表达式的值,并在其值为true时执行一条语句(称为循环体)。但while语句会在循环体执行完毕后再次计算表达式的值,这一点与if语句不同。如果此时表达式的计算结果仍然为ture,将再次执行循环体。这一循环体不进行下去,直到表达式为false时停止。|while执行相同的语句,直到它的条件变为false。|
2.无限循环:必须精心设计程序,已避免无限循环。
3.嵌套循环:一个循环体中可能包含另一个循环,这称为嵌套循环。外层循环每执行一次,内层循环就会执行指定次数的完成循环。
第六章
- 第一是switch语句
1.Java中的另一种条件语句是switch语句,该语句可使程序从多条执行路径中选择一条来执行,这些路径的选择基于某个单一的值。使用多个if语句可以构造出同样的逻辑,但是使用switch语句可使代码更易与理解。
2.switch语句先计算一个表达式的值,然后将该值和几个可能的case子句取值进行匹配。每种取值都有与之关联的执行语句。当计算出表达式的值后,控制会转移到与表达式值相匹配的第一条case子句执行。 - 第二是do语句
1.do语句和while语句很相似,do循环也重复执行循环体中的语句,直到循环控制条件变为false - 第三是for语句
1.for语句通常用于已知循环次数的情况。
2.for循环的控制头中包含由分号隔开的三部分。在循环开始前,首先执行称为初始化的第一部分;第二部分是一个布尔表达式,在执行循环体前先计算(类似while循环)。如果计算值为ture,将执行循环体,然后执行称为增量的第三部分。
教材学习中的问题和解决问题
-
问题1:迭代器的理解
-
问题1解决方案:在查阅资料之后了解到迭代器就是提供一种方法对一个容器对象中的各个元素进行访问,而又不暴露该对象容器的内部细节。
(https://www.cnblogs.com/zyuze/p/7726582.html) -
问题2:for语句的使用
-
问题2解决方案:在做过了例题64之后,书上说for语句特别适用于循环执行前已经明确知道循环次数的情况。for循环只是更便于将循环头中设置和控制循环次数的代码从循环体中分离出来,也就是更容易完成运算。
代码学习中的问题和解决过程
-
问题1:首先是由于之前编码时没有考虑到while循环的停止,导致做pp51的时候无限运行。
-
问题1解决方案:在检查代码时候发现在while循环时将语句块的内容强调不清,最后在改了之后成功运行下去。
-
问题2:在做pp53的时候,程序运行的并没有问题,但是输出结果却发生了错误。
-
问题2解决方案:在请教了蒋子行同学后发现,我在刚开始定义的时候把left设置为0,导致无论怎样输出都会包含一个0,然后第二次又发现最后读取的始终是一个末位数,最终在修改完之后成功解决了,在此也是很感谢蒋子行同学的帮助。
代码托管
上周考试错题总结
-
Which of the sets of statements below will add 1 to x if x is positive and subtract 1 from x if x is negative but leave x alone if x is 0?
A .if (x > 0) x++;else x--;
B .if (x > 0) x++;else if (x <0)x--;
C .if (x > 0) x++;if (x < 0) x--;else x = 0;
D .if (x == 0) x = 0;else x++;x--;
E .x++;x--;
如果 x 为正数, 则在 x 为负 x 的情况下执行 x++, 否则, 不会发生任何情况, 或者 x 不受影响。 在 A、C、D 和 E 中, 逻辑不正确。 在 A, x-是做如果 x 是不积极的, 因此, 如果 x 是 0, x 成为-1, 这是错误的答案。 在 C 中, 如果 x 为正数, 则执行 x++。 在任一情况下, 将执行下一语句, 如果 x 不是负数, 则执行 else 子句, 将 x 设置为0。 因此, 如果 x 是正数, 则在这组代码之后变为0。 在 D, x + + 和 x-都执行如果 x 不是0。 在 E 中, 此代码不尝试确定 x 是正数还是负数, 它只添加一个, 然后从 x 中减去 1, 使 x 相同。 -
Assume that count is 0, total is 20 and max is 1. The following statement will do which of the following? if (count != 0 && total / count > max) max = total / count;
A .The condition short circuits and the assignment statement is not executed
B .The condition short circuits and the assignment statement is executed without problem
C .The condition does not short circuit causing a division by zero error
D .The condition short circuits so that there is no division by zero error when evaluating the condition, but the assignment statement causes a division by zero error
E .The condition will not compile because it uses improper syntax
因为计数是 0, (计数! = 0) 是假的。 因为条件的左手边是假的, 所以条件是短路的, 所以右手边是不计算的。 因此, 避免了潜在的除法错误。 由于条件为 false, 语句最大 = 总计/计数未执行, 再次避免潜在除法为零错误。 -
Which of the following are true statements about check boxes?
A .they may be checked or unchecked
B .radio buttons are a special kind of check boxes
C .they are Java components
D .you can control whether or not they will be visible
E .all of the above
有关复选框的四个语句中的每一个都是 true。 -
Each case in a switch statement must terminate with a break statement.
A .true
B .false
如果中断语句不存在, 控制流就会继续进入下一个案例。 -
A switch statement must have a default clause.
A .true
B .false
默认子句是可选的。 -
The statement if (x < 0) y = x; else y = 0; can be rewritten using a conditional operator as
A .y = (x < 0) ? x : 0;
B .x = (x < 0) ? y : 0;
C .(x < 0) ? y = x : y = 0;
D .y = (x < 0);
E .y = if (x < 0) x : 0;
Java 的条件运算符在这种情况下测试一个条件 (x 0), 如果为 true, 则返回 "?" 之后的值。(在本例中为 x), 如果为 false, 则返回以下值: (在本例中为 0)。 原始 if 语句是将 y 指定为 x (如果为 x 0), 否则为0。 这将通过将 y 指定为 x 或0基于 (x 0) 来完成, 如中所示。 在 B 中, x 被指定为向后的 y 或0的值。 在 C 中, 条件运算符在语法上无效。 在 D 中, y 将被设置为 true 或 false, 具体取决于 (x 0), 而 E 中的语句在语法上无效。 -
Which of the following are true statements about check boxes?
A . they may be checked or unchecked
B . radio buttons are a special kind of check boxes
C . they are Java components
D . you can control whether or not they will be visible
E . all of the above
翻阅课本后发现所有方面都是正确的。 -
In Java, it is possible to create an infinite loop out of while and do loops, but not for-loops.
A . true
B . false
while和do循环可以是无限循环,但for循环可以是无限循环。这在许多其他编程语言中都不是真的,因为for-loops有一个集的起点和结束点,但是java for-loops比大多数其他语言的for-loops灵活得多。
其他(感悟、思考等,可选)
继续努力加油敲代码。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 180/180 | 2/2 | 20/25 | |
第二周 | 312/414 | 2/4 | 20/45 | |
第三周 | 557/971 | 2/6 | 25/70 | |
第四周 | 1217/2242 | 2/8 | 44/114 | |
第五周 | 734/2976 | 2/10 | 24/138 |
-
计划学习时间:24小时
-
实际学习时间:24小时
参考资料
《Java程序设计与数据结构教程(第二版)》
《Java程序设计与数据结构教程(第二版)》学习指导