编程语言:接近于人类语言的语法
经过编译为计算机的指令+数据
经过编译为计算机的指令+数据
上一节课的补充:
(1)疑问:long是64位,float是32位,为什么long可以赋值给float。
解答:举例两种类型的存储方法
long 314159265359879
float 3.14.5927*10^16(指数由-126 ~ 128)
可见,float的范围比long还要大
float的范围比long大,但是其精度较低,所以平时比较少用,而是使用double
long范围没有float大,但是精度较高
float的具体存储方式可以去网上查,其存储分为底数和指数。
(2)System.out.println();//将参数原有类型转换为相应的类型并输出
(3)注意数据类型的范围,避免溢出运算。因为溢出没有编译和运行错误,使用编译工具不能发现。
(1)疑问:long是64位,float是32位,为什么long可以赋值给float。
解答:举例两种类型的存储方法
long 314159265359879
float 3.14.5927*10^16(指数由-126 ~ 128)
可见,float的范围比long还要大
float的范围比long大,但是其精度较低,所以平时比较少用,而是使用double
long范围没有float大,但是精度较高
float的具体存储方式可以去网上查,其存储分为底数和指数。
(2)System.out.println();//将参数原有类型转换为相应的类型并输出
(3)注意数据类型的范围,避免溢出运算。因为溢出没有编译和运行错误,使用编译工具不能发现。
注意一个点: -1 % 5 = -1
-11 % 5 = -1
对自增自减运算符计算顺序的解释:
对于int b = a++; //先执行++运算,再执行赋值运算
1)取a = 1的值作为(a++)的结果1
2)将a增加1,a变成2
3)执行赋值运算,将(a++)的结果,赋值给b
-11 % 5 = -1
对自增自减运算符计算顺序的解释:
对于int b = a++; //先执行++运算,再执行赋值运算
1)取a = 1的值作为(a++)的结果1
2)将a增加1,a变成2
3)执行赋值运算,将(a++)的结果,赋值给b
运算优先级:
(1)++、--优先级高于*、/
(2)例子:
int x = 5; int y = 6;
y = y + --x*y++ + y;
// 6 + 4 * 6 + 7 = 6 + 24 + 7 = 37
//解释:计算机会先扫描表达式,当第一次扫描到y时,就将y的值确定为6.
//就是说在扫描表达式时会首先将变量的值确定,然后存起来,根据运算符的优先级进行计算
(1)++、--优先级高于*、/
(2)例子:
int x = 5; int y = 6;
y = y + --x*y++ + y;
// 6 + 4 * 6 + 7 = 6 + 24 + 7 = 37
//解释:计算机会先扫描表达式,当第一次扫描到y时,就将y的值确定为6.
//就是说在扫描表达式时会首先将变量的值确定,然后存起来,根据运算符的优先级进行计算
关系运算:
(1)关系表达式的结果为boolean类型
(2)关系运算的优先级高于四则运算
(1)关系表达式的结果为boolean类型
(2)关系运算的优先级高于四则运算
逻辑运算
(1)逻辑运算存在短路问题:&&、||运算中,如果第一个表达式的值即可得出最后的结果,则不计算其它表达式
(1)逻辑运算存在短路问题:&&、||运算中,如果第一个表达式的值即可得出最后的结果,则不计算其它表达式
条件运算符(三目运算符)
(1)结构:boolean表达式?表达式1:表达式2
(2)含义:如果boolean表达式为true,则将表达式1的值作为整个表达式的值,否则使用表达式2的值
(1)结构:boolean表达式?表达式1:表达式2
(2)含义:如果boolean表达式为true,则将表达式1的值作为整个表达式的值,否则使用表达式2的值
赋值运算:
(1)优先级是最低的
(2)赋值运算本身的结果是被赋值的变量的最终值
eg: c = a + ( b = 1 );//结果是c = a + 1
(1)优先级是最低的
(2)赋值运算本身的结果是被赋值的变量的最终值
eg: c = a + ( b = 1 );//结果是c = a + 1
字符串连接运算:+
(1)“+”可以实现字符串的链接,同时可以实现字符串和其他数据类型的相连
eg: msg = ""+100+200 //结果为"100200"
msg = 100+200+"" //结果为"300"
(2) System.out.println("A"+'B'); //结果为AB(B自动转换为了字符串类型)
System.out.println('A'+'B'); //结果为131(65+66)
(1)“+”可以实现字符串的链接,同时可以实现字符串和其他数据类型的相连
eg: msg = ""+100+200 //结果为"100200"
msg = 100+200+"" //结果为"300"
(2) System.out.println("A"+'B'); //结果为AB(B自动转换为了字符串类型)
System.out.println('A'+'B'); //结果为131(65+66)
三种程序结构:顺序、分支、循环
(1)分支结构:
1)if else语句
2)switch-case语句中
要求switch中的一定是整数表达式,
case后面一定是整数(byte short char int , long不行)
且两个case不能一样。
(2)循环
1)for循环
2)while循环
3)do while循环
(1)分支结构:
1)if else语句
2)switch-case语句中
要求switch中的一定是整数表达式,
case后面一定是整数(byte short char int , long不行)
且两个case不能一样。
(2)循环
1)for循环
2)while循环
3)do while循环
本章用到的新方法:
1、获取控制台输入的字符(而不是字符串)
char ch = console.nextLine().charAt(0);
没有单独读字符的方法。
2、nextInt()特性
console.nextInt();//将空格或回车作为终止的符号,
要输入多个数时,在输入时在数之间加空格即可
本章用到的经典案例:
1、知道行数和页面容量,计算页数。(对应Demo07)
2、闰年判断程序。(能够被400整除 或者 能够被4整除切不能被100整除)
3、个人所得税计算器(对应Demo13)
应纳税额 = (薪资所得-扣除数)*适用税率-速算扣除数
全月应纳税所得额 = 月工资 - 扣除数
4、累加、阶乘、求pi
1、获取控制台输入的字符(而不是字符串)
char ch = console.nextLine().charAt(0);
没有单独读字符的方法。
2、nextInt()特性
console.nextInt();//将空格或回车作为终止的符号,
要输入多个数时,在输入时在数之间加空格即可
本章用到的经典案例:
1、知道行数和页面容量,计算页数。(对应Demo07)
2、闰年判断程序。(能够被400整除 或者 能够被4整除切不能被100整除)
3、个人所得税计算器(对应Demo13)
应纳税额 = (薪资所得-扣除数)*适用税率-速算扣除数
全月应纳税所得额 = 月工资 - 扣除数
4、累加、阶乘、求pi
其它知识点:
1、写条件语句时,尽量使用肯定的条件。
2、if else的boolean条件表达式尽量使用肯定的条件,切else少写。
3、 System.out.println();
System.out.print();
上述两个方法的区别:上面的自动换行,下面的不执行换行操作
1、写条件语句时,尽量使用肯定的条件。
2、if else的boolean条件表达式尽量使用肯定的条件,切else少写。
3、 System.out.println();
System.out.print();
上述两个方法的区别:上面的自动换行,下面的不执行换行操作