java学习day04流程控制(一)

流程控制(一)

  • 条件分支
  • switch选择分支
  • if...esle与switch
  • 循环

条件分支

①:单分支
语法:
If(布尔表达式){
执行代码块
}
过程:布尔表达式必须返回true,才能进入执行代码块
总结:
类似以下情况判断没有大括号时,布尔表达式返回true会执行第一行!

 if (false) 
			System.out.println("hello world");		
		    System.out.println("chinasoft");

②:双分支
语法:if(布尔表达式){
代码块1
}else{
代码块2
}
过程:布尔表达式返回true,进入代码块1,跳出分支结构
返回false, 进入代码块2
③:多分支
语法:
If(布尔表达式1){
代码块1
}else if(布尔表达式2){
代码块2
}else if(布尔表达式3){
代码块3
}…

else if(布尔表达式n){
代码块n
}else{
代码块 end
}
执行流程:
布尔表达式1 返回true ,执行代码块1,跳出分支结构
False ,布尔表达式2,返回true,执行代码块2.跳出分支结构
False ,布尔表达式3…
如果都没有判断匹配,一定进入else语句

switch选择分支

语法:
Switch(表达式){
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
break;

case 常量表达式3:
语句3;
break;

default:
语句n+1;

}

运行流程:
1:传入表达式
2:让表达式和case进行比较,满足该匹配,进入该语句,
直到break语句结束,跳出分支结构
3:如果表达式和case后的常量表达式没有匹配,会进入default代码块
特点:
Break关键字:结束流程控制
表达式可以的类型:
switch/case中的表达式只能使用规定的基本数据类型,JDK1.5前
可以使用:
基本数据类型byte
基本数据类型short
基本数据类型int
字符型char
不能使用:
基本数据类型float、double、long、boolean (switch底层是int进行比较
注意:
JDK5之后,switch表达式类型新增加支持:枚举(enum)
JDK7之后,switch表达式类型新增加支持:String

if…esle与switch

在大部分情况下,两者能实现的功能都一致。但大多数情况下switch的速度都要快一些。switch是以空间换时间,所以从时间复杂度来比较,switch显然优于ifelse很多。但由于switch有数据类型的限制,所以在有些情况下就只能用ifelse而无法使用switch。

循环

①:for循环
语法:for(初始化变量 ; 布尔表达式 ; 控制语句){
代码块
}

流程:
1:初始化变量
2:布尔表达式 返回true 进入代码块
返回false 跳出循环
3:进入控制语句
4:布尔表达式 返回true 进入代码块
返回false 跳出循环

特点:
1 :里面可以空着,布尔表达式位置默认是true,那么就变成了无限循环
2 :初始化变量可以初始多个值
3 :控制语句也可以多个变量操作
4 :可以不用大括号,但是只能执行第一行
5 :关键字 break 和continue

你可能感兴趣的:(java)