一、数据类型转换
1.自动类型转换
1.概念:不同数据类型运算时候,数据范围小的会自动转换成范围大的数据类型
byte-short-int-long-float-double
2.格式:范围大的数据类型 变量名=范围小的数据类型的值;
2.强制类型转换
1.概念:使用特定的格式,将数据范围大的值转换成数据范围小的类型。
2.格式:
范围小的数据类型 变量名=(目标类型) 范围大的数据值
目标类型:是你想要转换的类型
3.基本类型一般不建议使用强制类型转换
4.byte,short char 在运算的时候一般会自动转为int
二、流程控制
2.1 顺序结构
1.概念:代码的运行顺序一般按照代码的书写顺序。
2.2 分支结构
2.2.1 if 语句
1.if 语句使用布尔表达式或者布尔值来作为分支条件来进行分支控制
2.if语句的格式
①:单分支的if结构
if(条件){
语句a;
}
语句b;
逻辑:条件满足的时候,执行语句a,之后执行语句b,不满足条件,则会直接执行语句b。
②:标准的if-else
if(条件){
语句a;
}else{
语句b;
}
语句c;
逻辑:条件满足,执行语句a,之后执行语句c,条件不满足则执行语句b,之后再执行语句c。
③:多条件的 if-else
if(a条件){
语句a;
}else if(b条件){
语句b;
}else if(c条件){
语句c;
}
......
else{
语句d;
}
逻辑:a条件满足,执行语句a,再执行语句d,若b条件满足,执行语句b,在执行语句d…
注意
1.如果if,else if,else,条件后面只有一条语句时,可以省略后面的大括号,建议不要省略。
int a=5;
if(a>4)
System.out.println(a);//省略大括号
else
a--;//省略大括号
//下面这句话已经和if else 无关,总会执行的语句
System.out.println("b不大于4");
2.如果省略了大括号,if条件只能控制跟紧该条件语句的第一个分号处。
3.如果if后面有多条语句,则不能省略大括号
int a=5;
if(a>4)
a--;
System.out.println(a);//这时候多条语句省略大括号,会编译出错
else
a--;//省略大括号
//下面这句话已经和if else 无关,总会执行的语句
System.out.println("b不大于4");
4.if-else else后面有一个隐含条件,意思是否则的意思,也就是隐含对前面的条件取反。
例如:
public class Test8 {
public static void main(String[] args) {
int age=45;
if (age>60) {
System.out.println("老年人");
}else if (age>40) {
System.out.println("中年人");
}else if(age>20){
System.out.println("青年");
}
}
}
2.3.2 switch语句
1.关键字:switch 、case、 break、default
2.格式:
switch(表达式){
case 值1:
语句a;
break;
case 值2:
语句b;
break;
case 值3:
break;
.......
default:
语句c;
break;
}
3.逻辑:计算表达式的值,将此结果和case后面的值比较,如果相同,就执行case后面的语句。
如果没有和case后面的值相同的就执行default后面的语句。
4.switch后面表达式数据类型只能是
byte,short,int ,String(java7之后) 和枚举
5.case后面的值的类型必须和表达式的结果类型一致
6.case后面的值必须唯一
7.default不是必须的,只有没有一次case满足且需要有默认结果之后才使用,位置是任意的,一般放在最后
8.break作用是结束整个switch-case结构
2.3 循环结构
2.3.1 while循环
1.格式:
while(循环条件){
语句a;
}
逻辑:先判断循环条件是否满足,满足则执行语句a;
当循环条件一直满足,会反复执行语句a,此时就是一个死循环。一般情况下,while循环会有一个false条件结束循环
2.while后面跟一个语句时
while(a<10);//后面跟一个分号,表明循环体是一个空语句。
java中一个单独的分号代表一个空语句
2.3.2 do…while循环
1.格式:
do{
语句a;
}while(循环条件);
2.逻辑:先执行一次语句,在判断条件。while循环是先判断条件,在执行循环里面的语句
3.do…while 循环后面有一个分号表明循环的结束
4.do…while 循环体至少执行一次
2.3.4 for循环
1.格式
for(初始值①;条件②;步进表达式③){
循环体④;
}
逻辑:先执行①,在执行②,在执行④,在执行③…
2.for循环,循环条件总比循环体多执行一次,因为最后一次执行循环条件返回false,不在执行循环体
3.for 循环迭代语句并没有和循环体放一起,因此即使执行循环体遇到continue语句结束此次循环,迭代语句也一样会执行。
4.for 循环圆括号里面只有两个分号必须的,初始化语句,循环条件,迭代语句都是可以省略的,如果省略了循环条件,这个循环默认为true,将会产生一个死循环
for(; ;){
System.out.println("------");
}
2.4 死循环
while(true){
}
do{
}while(true);
for(;;){
}
2.5 break、continue和return
break:终止整个循环,开始循环之后的语句。
1、switch-case结构中用于跳出整个switch-case,如果没有break,switch-case中的语句会顺序向下执行。(穿透性)
2、循环结构中用于终止整个循环
continue:结束本次循环,开始下一次循环
1、只能用于循环结构,表示跳过当前次循环,继续后续的循环
return:结束一个方法
1.当一个方法后面执行到一个return语句时候,这个方法会结束,return后面还可以跟变量,常量,表达式,都会有不同的结果.