一、回顾
- 自动类型转换
- 浮点型的32位是存储的科学计数法,而整数保存的是二进制
- 所以float的32位的最大值远远大于long的64位的最大值,所以long到float是自动类型转换
- 小数相加
- 0.1+0.2=0.30000000000000004
- 内存有些小数无法存储,需要注意,千万不要用小数做判断
- 赋值运算
-
赋值运算算为右结合,并且*=和+= 他们优先级都是一致的
-
从右到左开始计算,但是 依然是从左到右初始化
-
二、运算符
- 三目运算符:又叫三元运算符
语法:布尔型表达式?真语句:假语句;
布尔型表达式:结果只要是布尔型即可(true/false) - 字符串拼接符:+
+ 既是加和运算,也是字符串拼接符,用于把多个数据合并成一个字符串
任何数据只要和字符串进行+拼接,都可以新的字符串
三、流程控制
1.流程控制有三种情况
1、顺序结构:从上往下,从左向右执行,相当于马路只有一条路,没有任何分叉口
2、分支结构:相当于马路有个分叉口,可以根据当前情况进行选择走哪条路
3、循环结构:重复做某一件事,相当于在操场跑步
2.顺序结构
严格从上往下从左到右执行即可
第一个条件为false,第二个就不执行了
如果一个运算中,&&和||都有,那么&&的优先级高于||
3.分支结构
1.if...else...
单分支语句:如果不符合条件,就不执行了
if(布尔型表达式){
为真执行的java代码;
}
双分支语句:一定会有一个分支执行
if(布尔型表达式){
为真执行的java代码;
}else{
为假执行的java代码;
}
多分支语句:如果有else,就肯定会执行一个分支,否则就有不执行情况
多分支 只会有一个分支执行,当一个分支执行,则整个多分支结构结束
if(布尔型表达式){
java代码;
}else if(布尔型表达式){
java代码;
}else if(布尔型表达式){
java代码;
}...
2.switch
语法:
在Java1.7之前 只能传入int类型
在Java1.7开始 还能传入String类型
能传入int也就意味着能传入short,byte,char
switch (数据) {
case 值:
符合条件的代码
break;
case 值:
符合条件的代码
break;
default:
默认执行的代码
}
注意:每个case分支 一定要加break,否则会发生case穿透现象
default可以不加,如果不加就会有不执行的情况,就等于if没有else一样
3.for
1、循环使用:
循环结构:重复做某一件事
循环三要素:初始值,终止条件,步长
语法:
for (表达式1; 表达2; 表达式3) {
循环体,就是重复做的事;
}
表达式1:最先执行,并且只执行一次,适合做初始化操作
表达式2:必须是布尔型表达式,返回true/false
表达式3:每次循环都会执行,所以适合做步长操作
执行过程:
循环开始执行,先执行表达式1,并且只执行一次,然后执行表达式2,此时如果表达式2返回false,则终止循环
如果表达式2返回true,则执行循环体,再执行表达式3,再次执行表达式2
以此类推,一直到表达式2返回false,循环终止,否则一直执行
2、嵌套循环:
嵌套循环:循环体中还有一个循环
可以双嵌套循环 模拟二维图表
外循环表示行数,内循环表示每行的列数
外循环执行一次,内循环执行一圈