Java流程控制框架图
Paste_Image.png
流程控制
一. 循环结构
二. 分支结构
三. 顺序结构
循环结构
for循环,for-each循环
for循环的语法格式:
for(初始化;布尔表达式;更新){
//需要执行的代码;
}
for-ex:
public static void main(String[] args){
for(int i = 0; i < 100; i++){
System.out.println("第"+(i+1)+"循环");
}
//for循环另外一种表达形式
int i = 0;
for(;i < 10;i++){
System.out.println("当前i值:"+i);
}
}
for-each循环语法格式:
for(声明局部变量 :集合容器){
//需要执行的代码;
}
提示:for-each循环中,声明的局部变量的数据类型必须需要和集合容器内的元素的数据类型匹配
for-each ex:
public static void main(String[] args){
int[] items = {1,2,3,4,5,6,7,8,9,10};
for(int item:items){
System.out.println("元素是:"+ item);
}
}
while循环
while循环语法格式:
//只要布尔表达式结果为true,则会一直执行循环内容
while(布尔表达式){
//循环内容;
}
提示:while循环的特点是先判断布尔表达式是否为真,如果为真,继续执行循环体,否则跳过循环。
while-ex:
public static void main(String[] args){
int a = 10;
while(a > 0){
a--;
System.out.println("当前a="+a);
}
}
do..while循环
do..while循环语法格式:
do{
//执行代码;
}while(布尔表达式);
提示:布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。 如果布尔表达式的值为true,则语句块一直执行,直到布尔表达式的值为false。
do-while ex:
public static void main(String[] args){
int a = 10;
do{
a--;
System.out.println("当前a="+a);
}while(a > 0);
}
ps:可以通过上述代码,看出while循环和do...while循环的区别。
在流程控制中,有时候我们可能需要当程序执行结果符合一定条件时,需要跳出循环,继续下一次的循环或者直接返回结果。就需要用到break,continue,return等关键词。
关键词
break
特点:break主要用在循环语句或者switch语句中,用来跳出整个语句块。break跳出当前循环,并且继续执行该循环下面的语句。
ex:
public static void main(String[] args){
//当i=8时,结束循环,继续执行循环控制下面的代码
for(int i = 0; i < 10;i++){
if(i == 8){
break;
}
System.out.println("i="+i);
}
System.out.println("循环结束");
}
下面代码主要体现的是跳出当前循环:
public static void main(String[] args){
for(int i = 0; i < 10;i++){
System.out.println("i="+i);
for(int j = 0;j < 10;j++){
if(i == 8) break;
System.out.println("i="+i+";j="+j);
}
}
}
/*
如果当i=8时,直接跳出所有循环该,怎么做呢?
我们可以给循环增加标记符号,指定break或者continue
哪个循环。
*/
public static void loopFlag(){
one:for(int i = 0; i < 10;i++){
System.out.println("i="+i);
two:for(int j = 0;j < 10;j++){
if(i == 8) break one;
System.out.println("i="+i+";j="+j);
}
}
}
continue
特点:continue适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。在for循环中,continue语句使程序立即跳转到更新语句。在while或者do…while循环中,程序立即跳转到布尔表达式的判断语句。在嵌套循环中,指定跳到哪一个循环的迭代,使用标记符号,用法跟break类似。
return
特点:跳出整个函数体,函数体后面的部分不再执行。
分支结构
if...else条件判断
if语句后面可以跟else语句,当if语句的布尔表达式值为false时,else语句块会被执行。
if...else语法格式:
if(布尔表达式){
//如果为真,布尔表达式为true;
//可执行代码;
} else {
//如果为假,布尔表达式为false;
//可执行代码;
}
ex:
public static void main(String[] args){
for(int i = 1;i < 10;i++){
if(i%2 == 0){
System.out.println("i="+i);
} else {
System.out.println("i="+i);
}
}
}
switch...case...default分支判断
switch语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
switch语法格式:
switch(变量){
case value :
//可执行代码
break; //可选
case value :
//可执行代码
break; //可选
//你可以有任意数量的case语句
default : //可选
//可执行代码
}
ex:
public static void main(String args[]){
int a = 1;
switch(a) {
case 0 :
System.out.println("a=0");
break;
case 1 :
case 2 :
System.out.println("a=2");
break;
case 3 :
System.out.println("a=3");
default :
System.out.println("输入a="+a);
}
}