20145201 《Java程序设计》第二周学习总结
教材学习内容总结
本周学习了课本第三章内容,即JAVA基础语法。
3.1 类型、变量与运算符
基本类型:在java中基本类型主要可区分为整数、字节、浮点数、字符与布尔。
-
整数:可分为short整数、int整数、long整数。
-
字节:byte类型,可表示-128~127的整数。长度就是1字节。
-
浮点数:分为float浮点数和double浮点数。Double可表示的精度比较大。
-
字符:char类型用来储存字符符号。
-
布尔:boolean类型可表示true与false,分别代表逻辑的“真”与“假”。
各种类型可存储的数值范围,可以通过API得知。代码如下:
public class Demo {
public static void main (String[] args){
//byte、short、int、long范围
System.out.printf("%d ~ %d%n",Byte.MIN_VALUE,Byte.MAX_VALUE);
System.out.printf("%d ~ %d%n",Short.MIN_VALUE,Short.MAX_VALUE);
System.out.printf("%d ~ %d%n",Integer.MIN_VALUE,Integer.MAX_VALUE);
System.out.printf("%d ~ %d%n",Long.MIN_VALUE,Long.MAX_VALUE);
//float、double精度范围
System.out.printf("%d ~ %d%n",Float.MIN_EXPONENT,Float.MAX_EXPONENT);
System.out.printf("%d ~ %d%n",Double.MIN_EXPONENT,Double.MAX_EXPONENT);
//char可表示的Unicode范围
System.out.printf("%h ~ %h%n",Character.MIN_VALUE,Character.MAX_VALUE);
//boolean的两个值
System.out.printf("%b ~ %b%n",Boolean.TRUE,Boolean.FALSE);
}
}
经运行结果如下:
2、变量
数据暂存位置在程序语言中成为变量
- 基本规则:用关键词来声明。
- 字面常量:在Java中写下一个值,该值称为字面常量。整数字面常量可用十进制、八进制或十六进制表示。
- 数字常量表示法:想要以二进制表示则可以用0b作为开头,八进制以0开头,十六进制以0x开头。
3、运算符
- 算术运算:+、-、*、/、% 。
- 比较、条件运算:>、>=、<、<=、= =、!= 。
eg.比较运算使用代码:
public class Comparison
{
public static void main(String[] args){
System.out.printf("10 > 5 结果 %b%n", 10 > 5);
System.out.printf("10 >= 5 结果 %b%n", 10 >= 5);
System.out.printf("10 < 5 结果 %b%n", 10 < 5);
System.out.printf("10 <= 5 结果 %b%n", 10 <= 5);
System.out.printf("10 == 5 结果 %b%n", 10 == 5);
System.out.printf("10 != 5 结果 %b%n", 10 != 5);
}
}
结果如下:
- 逻辑运算:&&(AND)、||(OR)、!(NOT)。
eg:逻辑运算代码:
public class Demo
{
public static void main(String[] args){
int num=75;
System.out.println(num > 70 && num < 80);
System.out.println(num > 80 || num < 75);
System.out.println(!(num > 80 || num < 75));
}
}
结果如下:
- 位运算:&(AND)、|(OR)、^(XOR)、~(补码)
位运算是逐位运算,一个一个对应运算。补码运算是将所有为0变1,1变0。
在位运算上,java还有左移(<<)和右移(>>),被挤出去的为会被丢弃。
eg:位运算代码:
public class Demo{
public static void main(String[] args){
System.out.println("AND 运算:");
System.out.printf("0 AND 0 %5d%n", 0&0);
System.out.printf("0 AND 1 %5d%n", 0&1);
System.out.printf("1 AND 0 %5d%n", 1&0);
System.out.printf("1 AND 1 %5d%n", 1&1);
System.out.println("
OR 运算:");
System.out.printf("0 OR 0 %6d%n", 0|0);
System.out.printf("0 OR 1 %6d%n", 0|1);
System.out.printf("1 OR 0 %6d%n", 1|0);
System.out.printf("1 OR 1 %6d%n", 1|1);
System.out.println("
XOR 运算:");
System.out.printf("0 XOR 0 %5d%n", 0^0);
System.out.printf("0 XOR 1 %5d%n", 0^1);
System.out.printf("1 XOR 0 %5d%n", 1^0);
System.out.printf("1 XOR 1 %5d%n", 1^1);
}
}
结果如下:
- 递增递减运算: ++、--
- 指定运算:a+=b即a=a+b
3.2流程控制
1、if…else条件式
(1)if(条件){
描述句;}
else{
描述句;}
eg:运用if…else判断数字为奇数或偶数:
程序代码:
public class Odd{
public static void main(String[] args){
int input = 10;
int remain = input % 2;
if(remain == 1){
System.out.printf("%d 为奇数%n", input);
}
else{
System.out.printf("%d 为偶数%n", input);
}
}
}
结果如图:
2、switch条件式:
eg:用switch处理学生成绩等级
程序代码:
public class Level{
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);
}
}
运行结果:
3、for循环:
for圆括号中,初始值只执行一次,通常用来声明或出始变量,如果是声明变量,结束for循环后变量就会消失。第一个分号后的语句每次执行循环体前会执行一次来判断是否执行循环体。第二个分号后则是每次执行完循环体后会执行一次。
eg:for循环显示九九乘法表代码如下:
public class Table{
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();
}
}
}
运行结果:
4、while循环
While语句在循环执行前就进行条件判断,do...while不论条件怎样,都至少会执行一次循环。
5、break、continue
break可以离开当前区块,并执行区块后下一个描述句。
continue只会略过之后描述句,并回到循环区块开头进行下一次循环,而不是离开循环。
它们都可以配合标签使用。
教材学习中的问题和解决过程
问题:print、printf、println理解有些混乱,不知什么时候该用什么。
解决:询问同学,上网查资料。
printf主要是继承了C语言的printf的一些特性,可以进行格式化输出。
print就是一般的标准输出,但是不换行。
println和print基本没什么差别,就是最后会换行。
同时,可以利用printf输出字符串,如果输出简单字符println即可。
代码调试中的问题和解决过程
看书上的代码基本都可以看懂,中间出现了一些小问题,看着提示也可以改正。如果没有书上的代码,单独抛出问题让我自己解决,感觉会比较困难。但感觉首先应该多看别人编出的代码,逐渐建立编写程序的思路,有自己的一套编写代码的框架。
其他(感悟、思考等,可选)
经过两周的学习,逐渐对java有更深的理解。它和之前的c语言还是有很多相同的地方。感触最深的一点是,跟着视频学习要比单独看书要容易上手的多。Java主要还是要动手实践,多敲代码,过程中不断出错,不断改正,填补自己的漏洞。同时可以学习一些java的小技巧,让自己的程序变得更加简单,也可以减少因复杂的语句增加程序错误的概率。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 4500行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 15/15 | java相关的基础知识 |
第二周 | 300/500 | 1/3 | 25/40 | java相关的基础语法 |