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程序设计与数据结构教程(第二版)》学习指导

20172330 2017-2018-1 《Java程序设计》第五周学习总结的更多相关文章

  1. 201521123025<java程序设计>第五周学习总结

    1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1.2 ...

  2. Java程序设计第五周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 2. 书面作业 **代码阅读:Child压缩包内源代码 Child.java源代 ...

  3. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

  4. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  5. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  6. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  7. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

  8. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

  9. 20145237 《Java程序设计》第九周学习总结

    20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...

  10. 20175209 《Java程序设计》第九周学习总结

    20175209 <Java程序设计>第九周学习总结 一.教材知识点总结 有关数据库下载中存在可能出现的问题已经在博客<数据库安装和使用过程中出现的一些问题>给出了相应的解决办 ...

随机推荐

  1. MySQL必知必会 读书笔记四:数据过滤

    过滤数据 WHERE 只检索所需数据需要指定搜索条件( search criteria) ,搜索条件也称为过滤条件( filtercondition) . 在SELECT语句中,数据根据WHERE子句 ...

  2. 视频网站数据MapReduce清洗及Hive数据分析

    一.需求描述 利用MapReduce清洗视频网站的原数据,用Hive统计出各种TopN常规指标: 视频观看数 Top10 视频类别热度 Top10 视频观看数 Top20 所属类别包含这 Top20 ...

  3. Java核心技术36讲----------谈谈final、finally、finalize有什么不同

    一.final 1.final修饰方法时,需要注意的点: #final修饰方法时,之前的第二个原因是效率.但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升.在最近的Java版本中,不需要使用 ...

  4. Python学习笔记六:集合

    集合 Set,去重,关系测试:交.并.差等:无序 list_1=set(list_1), type(list_1) list_2=set([xxxxx]) 交集:list_1.intersectin( ...

  5. 《JavaScript实用效果整理》系列分享专栏

    整理一些使用的JavaScript效果,在Web开发中遇到的比较好的动态效果,都收藏在这里,对以后的网站开发增加不少的色彩 <JavaScript实用效果整理>已整理成PDF文档,点击可直 ...

  6. linux 查看内置命令

    使用: man shell builtins 查找结果如下:

  7. AIDL 进程间通信的一个小小的总结

    需求 项目需要,将做好的项目作为一个服务提供给另一个公司.我们需要提供一个apk,所以设计到进程间交互,不得不了解一下AIDL了. 了解一下AIDL 之前准备面试的时候,或多或少的了解了一点AIDL, ...

  8. 2017Noip普及组游记

    Day0 一天都基本在休息,早上信心赛,大家都是400整. 下午一群人窝在教室里打三国杀. Day1:Before Contest 早上大约十点到了试场,在考提高组,不能进. 喝了一杯咖啡去除早起的身 ...

  9. 成都Uber优步司机奖励政策(2月23日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  10. 成都Uber优步司机奖励政策(1月8日)

    1月8日 奖励政策 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblog ...