1.程序控制结构
1.1 顺序控制
*介绍:程序从上到下逐行地执行,中间没有任何判断和跳转
1.2 分支控制
*分支控制If - else
1.单分支
*基本语法:
if(条件表达式){ 语句; }
条件表达式为true时,会执行下面语句
2.双分支
*基本语法:
if(条件表达式){ 执行代码块1; } else{ 执行代码块2; }
条件表达式为true执行1,否则执行代码块2
3.多分支
*基本语法:
if(条件表达式){ 执行代码块1; } else if(条件表达式2){ 代码块2; } .... else{ 代码块n; }
*特别说明:
1.可以没有else,如果所有条件表达式都不成立,则一个执行入口都没有。
2.如果有else,所有条件表达式都不成立,则执行else
4.嵌套分支
*在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构成为内层分支,外面的分支结构称为外层分支
*基本语法:
if(){
if(){ //if-else... }else{ //if-else } }
5.switch分支结构
*基本语法:
switch(表达式){
case 常量1: //当表达式的值等于常量1,就执行语句块1 语句块1; break; //跳出switch结构 case 常量2: 语句块2; break; ... case 常量n: 语句块n; break; default: //如果一个都没有匹配上,执行default default语句块; break; }
*注意事项:
1.表达式数据类型,应和case后的常量类型一致,或者是可以自动转成可以相互比较的类型,比如输入的是字符,而常量是int
2.switch(表达式)中表达式的返回值必须是:(byte,short,int,char,enum[枚举],String)
3.case子句中的值必须是常量或者常量表达式,而不能是变量
4.default子句是可选的,当没有匹配的case时,执行default
5.如果没有default子句,也没有匹配任何常量,则没有输出
6.break用于执行完一个块之后跳出switch,如果没有写break,程序会顺序执行到switch结尾,除非遇到了break
1.3 循环控制
1.for循环控制
*基本语法:
for(循环变量初始化;循环条件;循环变量迭代){ 循环操作(可以多条语句); }
*for关键字,表示循环控制
*for循环四要素:
1.循环变量初始化
2.循环条件
3.循环操作
4.循环变量迭代
*注意事项:
1.循环条件是返回一个布尔值的表达式
2.for(;循环判断条件;)中的初始化和变量迭代可以写到其它地方,但是两边的分号不能省略
3.循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代语句,中间用逗号隔开
2.while循环
*基本语法:
while (循环条件){循环体(语句);循环变量迭代;
}
*注意事项:
1.循环条件是返回一个布尔值的表达式
2.while循环是先判断再执行语句
3.do…while循环控制
*基本语法:
do{循环体(语句);循环变量迭代;
}while(循环条件);
*注意事项:
1.先执行,再判断,一定会至少执行一次
2.最后有一个分号 “ ; ”
4.多重循环控制
*介绍:
1.将一个循环放在另一个循环体内,形成嵌套循环。
2.实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。
3.设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n次
for( int i = 1; i <= 7; i++) //第一层循环7次
{for(int j = 1; j <= 2; j++) //第二层循环2次{System.out.println("OK");}
}
*例题请看16.多重循环控制例题—打印金字塔
1.4 跳转控制
1.break–跳转控制语句
*当某个条件满足时,终止循环
*实例可看switch语句里面的跳转
*break语句用于终止某个语句块的执行,一般使用在switch或者循环[ for , while , do-while]中
*基本语法:
{.....break;.....
}
*实例:
for(int i =1; i <=10 ; i++)
{if(i==3){break; //直接提前结束循环}System.out.println("Ok" + i);
}
*注意事项和细节说明:
1.break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块
2.标签的基本使用:
label1:{ ...
label2(abc): { ...
label3: { ...break label2; //如果没有label2就退出到label3,终止处于label标签下的函数循环体...}} }//1.break语句可以指定退出哪层
//2.label1是标签,由程序员指定
//3.break后指定到哪个label就退出到哪里
//4.在实际的开发中,尽量不要使用标签
//5.如果没有指定break标签,默认退出最近的循环体
2.continue–跳转控制语句
*基本介绍:
1.continue语句用于结束本次循环,继续执行下一次循环
2.continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环,这个和break语句标签的使用规则一样
*基本语法:
{.....continue;.....
}
*使用细节:
label1:{ ...
label2(abc): { ...
label3: { ...continue label2; //如果没有label2就退出到label3,终止处于label标签下的函数循环体...}} }//1.continue语句可以指定退出哪层
//2.label1是标签,由程序员指定
//3.continue后指定到哪个label就退出到哪里
//4.在实际的开发中,尽量不要使用标签
//5.如果没有指定continue标签,默认退出最近的循环体
3.return–跳转控制语句
*介绍:
1.return使用在方法,表示跳出所在的方法
2.注意:如果return 写在main方法,就会退出程序