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复制表结构和数据

    1.复制表结构: create table newName like oldName;//可以复制所有结构. 或者: create table newName select * from oldNam ...

  2. LogViewer超大文本浏览工具

    官方下载 LogViewer 是一款简单好用的log日志文件查看工具.您想要查看log日志吗?那么不妨来看看这款LogViewer .该款工具可以在短短数秒内打开上G的LOG文件,支持高亮某行文字(例 ...

  3. 用jQuery实现(全选、反选、全不选功能)

    在jQuery选择器的基础下我们实现一个全选,反选,全不选功能! <script type="text/javascript">        $(function ( ...

  4. node 版本升级,版本管理,版本切换

    查看node版本 node -v 升级步骤 1,清除node缓存 sudo npm cache clean -f 2,安装n模块 sudo npm install -g n 3,升级到稳定版本 sud ...

  5. Redis Cluster Notes

    Redis Cluster Goal:     1. 最大支持1000个节点的高性能.可线性扩展集群:集群架构中无Proxy层,主从间采用异步同步机制(replication),无merge层(不支持 ...

  6. Spark运行模式_本地伪集群运行模式(单机模拟集群)

    这种运行模式,和Local[N]很像,不同的是,它会在单机启动多个进程来模拟集群下的分布式场景,而不像Local[N]这种多个线程只能在一个进程下委屈求全的共享资源.通常也是用来验证开发出来的应用程序 ...

  7. LCD驱动程序

    学习目标:熟悉TFT LCD的概念,分层驱动工作原理和程序编写. 一.LCD 概念 1.  显示器数据组织格式 1)一幅图像成为一帧,每帧由多行组成,每行由多个像素组成.每个像素的颜色由若干位表示,对 ...

  8. Python学习笔记四:列表,购物车程序实例

    列表 切片 中括号,逗号分隔,可以一次取出多个元素,起始位置包括,结束位置不包括(顾头不顾尾) 如果取最后一个,而且不知道列表长度,可以使用负数(-1是最后一个,以此类推) 如果取最后几个,记住从左往 ...

  9. linux进程篇 (三) 进程间的通信1 管道通信

    通信方式分4大类: 管道通信:无名管道 有名管道 信号通信:发送 接收 和 处理 IPC通信:共享内存 消息队列 信号灯 socke 网络通信 用户空间 进程A <----无法通信----> ...

  10. 001-快速排序(C++实现)

    快速排序的基本实现 快速排序算法是一种基于交换的高效的排序算法,它采用了分治法的思想: 1.从数列中取出一个数作为基准数(枢轴,pivot). 2.将数组进行划分(partition),将比基准数大的 ...