分支结构
- if语句
if(判断语句){
....
}
若if语句只有一行,{}可省略不写。
但是不推荐,影响阅读。
- if...else语句
if(判断语句){
....
}else(判断语句){
....
}
else可以有多个,且else总是与最近且未匹配的if语句配对
- switch语句
功能略逊于if,但性能好
语法:
switch(表达式) // 表达式不支持double , float , long
{
// 选择值不允许重复,且只能是字面量
case 选择值1 : 语句主体1 ;break; // 不要忘记写break,否则会出现穿透现象
case 选择值2 : 语句主体2 ;break;
... ...
case 选择值n : 语句主体n ;break;
default: 语句主体; // 只能有一个default语句
}
循环结构
for语句
经典for循环~
for(表达式1;表达式2;表达式3)
{
循环体语句;
......
}
// 流程:定义表达式1,判断表达式2,true则进入循环,完毕后执行表达式3,再次判断表达式2
其中,表达式1用来设置循环控制变量的初始值
表达式2用来设置循环终止时间
表达式3用来控制循环遍历的增量
foreach循环
概述:foreach循环是一种更简洁的for循环,也成为增强for循环。foreach循环用于遍历数组或集合的元素。 实现Iterator接口的类才可以使用迭代器的增强for
原理:增强for循环的内部原理是一个Iterator迭代器,遍历集合相当于是迭代器的简化写法。
语法:
for(数据类型 变量名:遍历的目标){
//语句
}
或
for(容器中的元素类型 临时变量:容器变量){
//语句
}
注意:foreach循环遍历集合和数组时,只能访问集合中的元素,并不能对其中的元素进行修改。
实例:
//foreach对于集合
Collection<String> list = new ArrayList<>();
for(String ele:list){
System.out.println(ele);
}
//foreach对于数组
String[] list = f.list();
for(String l:list){
System.out.println(l);
}
while语句
语法:
while(判断表达式)
{
循环体:
...
}
先判断再执行。
当while的判断表达式为true或1的时候,循环体会无限循环。
有时程序一直走不动时,不妨看看是不是进入了while死循环。
do...while
语法:
do{
循环体;
...
}while(判断表达式);
do...while
看起来和while
很相似,但是恰恰相反,do...while
是但是先执行再判断
跳转语句
break语句
作用:break只会跳出当前循环
可以给break语句添加标签,以结束标记的循环,如:
OUT:
while(true){
......
for(...){
......
break OUT; // 此处可直接结束while循环
}
}
这段代码中OUT的作用是标记,等程序执行到break OUT就会跳出循环回到标记的位置。
continue语句
作用:终止本次循环并从头开始,放在循环的循环体中。
return语句
作用:通常用于退出方法或者退出方法的同时返回某个类型的值
立即跳出并结束当前方法的执行
语法:
return 表达式;
注意:
①return语句返回的数据类型必须与方法声明的类型一样
②若方法的类型为void,则可省略return语句