20145204 《Java程序设计》第2周学习总结
教材学习内容总结
在第三章主要学习了Java语言中的类型及其变量主要类型为:整数(1字节的byte,2字节的short,4字节的int以及8字节的long型),还有char型,boolean型的变量类型,以及相关运算符:逻辑运算,位运算递增递减运算,指定运算等。同时我们需要注意到在JAVA语言中一不小心就会出现变量类型相互转换的小错误。语句类我们接触了if-else和switch条件式的语句,for和while循环语句,以及break和continue语句。
Byte和byte区别:Byte是包装类型,byte是数据类型。byte是编译器可识别的Java语法方面的,而Byte则是Java包的一个类。
教材学习中的问题和解决过程
1.在任何一个程序中尤其要关注变量的变化情况。看上去很相似的两个句子得到的结果却完全不同。例如:
int num=1;
System.out.printf("%d%n",number=number<<1);
System.out.printf("%d%n",number=number<<1);
int num=1
System.out.printf("%d%n",number<<1);
System.out.printf("%d%n",number<<1);
运行结果如下:
2.在编程中很容易忽略赋值语句(指定运算)从而使变量悄悄的改变,最终使得结果出现错误。
3.在设计程序的时候如果需要用到循环语句for或者while语句时一定要注意条件以及该语句块中的使用,否则在调试的时候程序本身没有问题,但是却不能输出结果,这个时候就要检查是否已经进入了死循环。switch语句中恰当使用“break;”,否则switch语句就不会有应有的效率。
4.在运行书上代码的时候发现有一个很有意思的问题,在输出时课本有时候用println,有时候又会用printf,自己动手尝试了一遍才发现区别。 printf;println;print三个输出类型的差别:print和println在输出格式要求并无区别,但是在println中会自动换行,print则不会。printf通常用在格式化输出的时候。
代码调试中的问题和解决过程
乘法表(不包括重复的部分)程序:
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
System.out.printf("%d*%d=%-5d",i,j,i*j);
System.out.printf("%n");
}
课后题1主程序:
int m,n,r;
m=1000;
n=495;
r=m%n;
while(r!=0)
{
m=n;
n=r;
r=m%n;
}
System.out.printf("最大公因子:%d",n);
课后题2主程序:
int l,m,n;
int i;
int s;
for(i=100;i<=999;i++)
{
l=i/100;
m=i/10%10;
n=i%10;
s=m*m*m+n*n*n+l*l*l;
if(s==i)
System.out.printf("%d^3+%d^3+%d^3=%d%n",l,m,n,i);
}
其他(感悟、思考等,可选)
C语言和Java语言的基本语句是很相似的,但是Java语言比较简练,就拿输出一个量值,Java可以直接prntln(number);数字输出了,也直接换行了,但是C就必须标明。在Java中有package的概念,但是c语言没有。还有Java程序可以跨平台运行。这是目前我所感觉到的两者之间的差别。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 3500行 | 30篇 | 400小时 | |
第一周 | 100/100 | 2/2 | 20/20 | |
第二周 | 200/300 | 1/3 | 30/50 |