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

时间:2023-03-09 15:28:10
20155334 2016-2017-2 《Java程序设计》第二周学习总结

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

教材学习内容总结

java中的基本类型
  • 整数:有shortintlong三种
  • 字节:byte
  • 字符:char,汉字、英文字符都是双字节的
  • 布尔:boolean,表示逻辑的真与假
变量(数据暂存位置在程序语言中称为变量)
  • 变量的作用:用来暂时存储资料。
  • 变量命名时不可以使用数字作为开头,也不可以使用一些特殊字符同时不能与JAVA的关键字与保留字同名。
  • 可以运用驼峰式命名法。
运算符
  • 加(+)、减(-)、乘(*)、除(/)以及取余(%)。
  • 比较、条件运算,当比较条件不成立的时候以boolean类型false表示,反之用该类型的true表示.
  • 逻辑运算,“且” &&、“或” ||、“反相” !
  • 位运算,&and、|or、^ xor、~(补码)、<<(左移)、>>(右移)
  • 递增递减运算,与C语言的表示方式基本一致
  • 指定运算,目前只有=这个运算符
类型转换
流程控制
if...else条件式

课本示例代码如下

if...else条件式实现等级划分:

public class Level {
public static void main(String[] args) {
int score = 88;
char level;
if(score >= 90) {
level = 'A';
}
else if(score >= 80 && score < 90) {
level = 'B';
}
else if(score >= 70 && score < 80) {
level = 'C';
}
else if(score >= 60 && score < 70) {
level = 'D';
}
else {
level = 'E';
}
System.out.printf("得分等級:%c%n", level);
}
}

程序运行结果:

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

switch条件式

switch条件式实现等级划分:

public class level2 {
public static void main(String[] args) {
int score = 88;
int quotient = score / 10;
char level;
switch(quotient) {
case 10:
case 9:
level = 'A';
break;
case 8:
level = 'B';
break;
case 7:
level = 'C';
break;
case 6:
level = 'D';
break;
default:
level = 'E';
}
System.out.printf("得分等級:%c%n", level);
}
}

程序运行结果:

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

for循环

1到10程序:

public class OneToTen {
public static void main(String[] args) {
for(int i = 1; i <= 10; i++) {
System.out.println(i);
}
}
}

程序运行结果:

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

使用for循环实现九九乘法表程序:

public class NineNineTable {
public static void main(String[] args) {
for(int j = 1; j < 10; j++) {
for(int i = 2; i < 10; i++) {
System.out.printf("%d*%d=%2d ",i, j, i * j);
}
System.out.println();
}
}
}

程序运行结果:

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

课本上另外一种实现九九乘法表的程序:

public class NineNineTable2 {
public static void main(String[] args) {
for (int i = 2, j = 1; j < 10; i = (i==9)?((++j/j)+1):(i+1)) {
System.out.printf("%d*%d=%2d%c", i, j, i * j, (i==9 ? '\n' : ' '));
}
}
}

程序运行结果:

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

提示:

for循环圆括号中的第二个复合描述块如果没有撰写,默认就是true。故有

for(;;) {
...
}

表示无穷循环。

while循环

使用while循环实现随机停止

public class RandomStop {
public static void main(String[] args) {
while(true) { //直接执行循环
int number = (int) (Math.random() * 10); //随机产生0-9的书
System.out.println(number);
if(number == 5) {
break; //如果遇到5就离开循环
}
}
System.out.println("I hit 5....Orz");
}
}

程序运行结果:

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

课本上另外一种实现随机停止的程序代码:

public class RandomStop2 {
public static void main(String[] args) {
int number;
do {
number = (int) (Math.random() * 10); //先随机产生0-9的数
System.out.println(number);
} while(number != 5); //再判断要不要重复执行
System.out.println("I hit 5....Orz");
}
}

程序运行结果:

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

这两段代码的最主要区别在于随机数产生和判断步骤的先后顺序

breakcontinue

break可以离开当前switchforwhiledo...while的区块,并执行区块后下一个描述句。在switch中主要用来中断下一个case比较,在forwhiledo...while中,主要用于中断当前循环。

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

遇到的大部分问题经过类比C语言可以得到解决。

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

在代码调试过程中遇到在git中tree命令找不到,经过查询百度后应当下载文件。

其余的代码照搬课本,没有遇到大问题。

代码托管

代码上传截图:

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

代码量截图:

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

上周考试错题总结

  • 错题 填空:知识分为三类元知识、硬知识、软知识,需要通过实践获得的是(软知识)。真理,一定牢记。
  • 填空:德雷福斯技能学习模型把技能获取分为五个阶段:新手、高级新手、胜任者、精通者、专家,其中( 新手 )不能离开详细的指令。真理,一定牢记。
  • 填空:(git push)将本地分支的更新,推送到远程主机。基本问题应当牢记。
  • 填空:git log 命令来查看(提交历史)。基本问题,应当牢记。

感悟

在学习过程中愈发体会到认真的重要性。其次发现Java与C语言有极大的相似之处,可以通过C语言的学习过程得到触类旁通的效果。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 5/5 1/1 10/10
第二周 98/103 1/2 15/25

参考:

  • 计划学习时间:10小时

  • 实际学习时间:15小时

参考资料