20145214 《Java程序设计》第2周学习总结
教材学习内容总结
基本类型
-
整数:可分为short整数、int整数、long整数。
-
字节:即byte类型,可表示-128~127的整数。
-
浮点数:可分为float浮点数和double浮点数,其中double的精度比较大。
-
字符:char类型用来存储字符符号。
-
布尔:表示true\false。
-
通过API得知各种类型可储存的数值范围。 代码如下。
public class type{ 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的范围 System.out.printf("%h~%h%n", Character.MIN_VALUE, Character.MAX_VALUE); //布尔型 System.out.printf("%b~%b%n", Boolean.TRUE, Boolean.FALSE); }}
-
运行结果如下。
变量
- 变量的作用:用来暂存资料。
- 可用十进制、八进制或十六进制表示整数字面常量;要表示字符必须使用“”括住字符;使用忽略符号“\”,程序就会忽略下一个字符。
- 常用忽略符号:\b 倒退一个字符; \f 换页; \n 换行; \r光标移至行首。
运算符
-
算术运算:+、-、*、/、%.
-
比较运算:>、>=、<、<=、==、!=.
-
比较运算代码如下。
public class operator{ 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).
-
逻辑运算代码如下。
public class operator{ 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)、~(补码)
-
各个位运算代码如下。
public class operator{ 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("\nOR 运算:"); 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("\nXOR 运算:"); 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); }}
-
运行结果如下。
-
左移<<、右移>>.
-
左移运算代码如下。
public class operator{ public static void main(String[] args){ int num=1; System.out.printf("2 的 0 次方: %d%n", num); System.out.printf("2 的 1 次方: %d%n", num<<1); System.out.printf("2 的 2 次方: %d%n", num<<2); System.out.printf("2 的 3 次方: %d%n", num<<3); }}
-
运行结果如下。
if...else条件式
-
用if...else判断数字为奇数或偶数代码如下。
public class operator{ 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); } }}
-
运行结果如下。
switch条件式
-
switch括号中的值必须是整数、字符、字符串或Enum。开始执行后直到遇到break才离开switch区块,若case中没有符合的整数、字符、字符串或Enum,则会执行default语句。
-
用switch语句处理学生成绩等级代码如下。
public class operator{ public static void main(String[] args){ int score = 88; int q = score / 10; char level; switch(q){ 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); }}
-
运行结果如下。
for循环
-
for的括号中,初始式只执行一次,第一个分号后的语句每次执行循环体前会执行一次用于判断是否执行循环,第二个分号后则是每次执行完循环体后会执行一次。
-
for循环显示九九乘法表代码如下。
public class operator{ 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(); } }}```
-
运行结果如下。
while循环
- while会在循环执行前就进行条件判断,do...while至少会先执行一次循环。
break、continue
- break可以离开当前区块,执行区块后下一个描述句,continue只会略过之后描述句,并回到循环区块开头进行下一次循环,而不是离开循环。
教材学习中的问题和解决过程
-课本中switch条件式的default语句中没有加上break,如果加上break对运行结果会不会有影响?
-解决:尝试之后发现没有影响,因为break是结束区块执行,而程序执行完default之后也会自动跳出区块。
代码调试中的问题和解决过程
-问题:不清楚显示九九乘法表代码中
public class operator{
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();
}
}}
的System.out.println();
有什么作用
-解决:尚未解决。
其他(感悟、思考等,可选)
有了第一周的学习作为基础,第二周关于基础语法的掌握没有之前那么艰难了,在写代码的过程中也有了一点自己的小技巧可以加快速度,减少了一些不该出现的错误。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 1/3 | 20/40 |