20172325 2017-2018-2 《Java程序设计》第六周学习总结 20172325 2017-2018-2 《Java程序设计》第六周学习总结

教材学习内容总结

1.利用[ ]建立一个数组,整列数据可以通过数组名引用,数组中的每个元素则可以通过其在数组中的位置引用;
2.数组的边界检查是通过对数组的大小进行提前的声明,一旦之后输入的值超过范围将自动终止;
3.数组的声明方式有两种,或者说int[ ] grades = int grade[ ];
4.在建立一个数组的时候,对象数组中所保存的每一个字符串是属于他自己的对象,数组中的每一个对象都必须实例化。
5.建立了一个形参以后,将通过命令行调用main方法,javac和java将失去作用。

教材学习中的问题和解决过程

  • 问题1:对于例题里的for语句不是很懂“for (int value : list)”在之前的学习过程中并没有提到过这种说法,不明白具体意思,在本章也没有解释
  • 问题1解决方案:百度了一下,解释还挺多的
    20172325 2017-2018-2 《Java程序设计》第六周学习总结
20172325 2017-2018-2 《Java程序设计》第六周学习总结
    专业说法叫遍历数组,个人理解的意思是在建立了一个数组之后,最后执行输出操作时能够具体的输出数组里的每一个值。

代码调试中的问题和解决过程

  • 问题1:在实际操作命令行实参之前,不知道什么意思,出现了一下情况
    20172325 2017-2018-2 《Java程序设计》第六周学习总结
20172325 2017-2018-2 《Java程序设计》第六周学习总结

  • 问题1解决方案:在看了书和上网查询之后,了解到命令行实参的意义,并且参考了相关资料

  • 问题2:在编辑PP8.1的时候,运行时当我输入51的时候出现了下面的状况,但是其他在界外的数字就没有问题,程序正常终止。
    20172325 2017-2018-2 《Java程序设计》第六周学习总结
20172325 2017-2018-2 《Java程序设计》第六周学习总结
    20172325 2017-2018-2 《Java程序设计》第六周学习总结
20172325 2017-2018-2 《Java程序设计》第六周学习总结

  • 问题2解决方案:在我和张旭升小助教认真讨论之后,发现我们PP8.1编辑的BUG,也就是说是“差一错误”,之后对范围的定义进行了更改之后就成功了,当然,反面的0值也是一一个道理。

  • ...

代码托管

20172325 2017-2018-2 《Java程序设计》第六周学习总结
20172325 2017-2018-2 《Java程序设计》第六周学习总结
20172325 2017-2018-2 《Java程序设计》第六周学习总结
20172325 2017-2018-2 《Java程序设计》第六周学习总结

上周考试错题总结

  • 1.The idea that program instructions execute in order (linearly) unless otherwise specified through a conditional statement is known as flow of control
    解析:“控制流程”描述了指令执行的顺序。它默认为线性(或顺序),但通过使用控制语句(如条件和循环)进行更改。

  • 2.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--;
    正确答案:B
    解析:课本上有一个例子是,所以我就简单认为C选项是正确地,忘记看看两者内容的差别。正确的表达方式应该是B。

  • 3.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;
    正确答案:A
    解析:没有理解好条件运算符的表达方式。在这种情况下,Java测试一个条件(x<0)的条件操作符,如果是真的,则返回值之后的值?(在本例中为x),如果为false,则返回after:(本例中为0)的值。原始if语句是将y赋值为x if(x<0)和0。这将通过将y赋值为x或0来完成(x<0),如A.在B中所示,x被赋值为y或0的值,这是向后的。在C语言中,条件运算符在语法上是无效的。在D中,y将被设置为真或假,取决于(x<0),而E中的语句在语法上是无效的。

  • 4.If x is an int where x = 1, what will x be after the following loop terminates?
    while (x < 100)
    x *= 2;
    A . 2
    B . 64
    C . 100
    D . 128
    E . none of the above, this is an infinite loop
    解析:当x=64时,它仍然满足布尔表达式,所以还会执行一次,x=128,,不满足布尔表达式,输出。

  • 5.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( ) and equalsIgnore

  • 6.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语句只有在被测试值的数量很小时才有意义。

结对及互评

点评模板:

  • 博客中值得学习的或问题:

    • 在对课本的学习过程中她有很多值得我学习的地方,很多的批注体现了发现问题和解决问题的过程,这样一来对课本的理解就会更加深入。
    • 对于学习过程的一丝不苟,在学习第八章的过程中还能去发现个改善第五章的代码问题。
    • 在遇到问题时她的钻研精神值得我学习,主动研究,积极实践,善于提问。
  • 代码中值得学习的或问题:

    • 在本博客中,她对滴五章的代码进行了进一步研究,首先这个精神值得我学习,其次在她的改正过程中,也加深了我对这个知识点的理解和记忆。
    • 在她对索引过程的记录中,我也对索引有了更深的理解,明白了更加具体的应用。
    • 下次的问题,我也要在她前!!!
  • 基于评分标准,我给本博客打分:9分。

点评过的同学博客和代码

  • 本周结对学习情况
    • 20172306
    • 结对照片
    • 结对学习内容
      • 一起学习了第八章内容,对代码的调试进行了交流学习;
      • 一起向学长请教了PP8.1的设计过程。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 129/129 1/1 20/20
第二周 359/488 1/2 18/38
第三周 521/1009 2/4 22/60
第四周 1057/2066 1/5 30/90
第五周 636/2702 1/6 30/120
第六周 489/3191 1/7 28/158

参考资料