在程序中代码的执行有它的流程控制
1、顺序结构 由main方法开始执行,代码一行一行往下执行
2、分支结构 在顺序执行的基础上,遇到分支的代码
3、循环结构 在顺序执行的基础上,可能遇到分支结构,当遇到循环代码就一直在循环执行直到循环结束
一、顺序结构
public static void main(String[] args) {
//程序的主线程
}
二、分支结构
- if
if(条件表达式){
//执行代码块;
}
else if (条件表达式){
//执行代码块;
}
//……
else{
//执行代码块;
}
重点:
If结束后,代码继续往下走,若需要终止
则需要return或者throw自定义异常结束当前方法
if(e instanceof Architect){
if(arcNum>=1){
throw new TeamException("团队中至多只能有一名架构师");
}
}
- switch()
switch(表达式){
case 常量1:
语句1;
break;
case 常量2:
语句2;
break;
… …
case 常量N:
语句N;
break;
default:
语句;
break;
}
switch语句特点:
- switch(表达式)中表达式的返回值必须是下述几种类型之一: byte,short,char,int,枚举,String;
- 表达式值得类型必须和case中常量的值得类型一致!
- default是可选的,当以上的case都没有匹配时,如果有default代码块则进入
如果没有default,也没有满足所有case,那么将结束
- switch和if语句的对比:
- 如果判断的具体数值不多,且符合byte、 short 、int、 char这四种类型。虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。
- 对结果为boolean类型判断,则使用if
三、循环结构
定义:在某些条件满足的情况下,重复的执行某些语句
循环语句的四个组成部分
- 初始化表达式
- 布尔值判断表达式
- 迭代部分
- 循环体
循坏分类:
for
while
do-while
-
for:
语法格式:
for (初始化表达式①; 布尔值判断表达式②; 迭代部分③)
{
循环体(操作语句或语句块)④ ;
}
顺序:① ② ④ ③ -
while
语法格式:
初始化表达式①
while(布尔值判断表达式②)
{
循环体(操作语句或语句块)④
迭代部分③
} -
do-whole
语法格式:
初始化表达式①
do{
循环体(操作语句或语句块)④
迭代部分③
}while(布尔值测试表达式);
注意:whlie和do-while的区别是。do-while无论什么情况,先执行一次循环体
嵌套循环
-
定义:将一个循环放在另一个循环体内,就形成了嵌套循环。
实质上,嵌套循环就是把内层循环当成外层循环的循环体。
当内层循环的循环条件为false时,才完全跳出内层循环。
才结束外层的 当次 循环,开始下一次的循环。 -
示例
public static void selectSort(Sortable[] a){//{new Student(), new Rectangle(), new Student()}
for(int i = 0; i < a.length - 1; i++){
for(int j = i + 1; j < a.length; j++){//直接排序
if(a[i].compare(a[j]) == -1){
Sortable s = a[i];
a[i] = a[j];
a[j] = s;
}
}
}
}
- 解读:
1 i=0,进入循环体操作(内层for)
2 j=0+1,进入循环体操作(if)
重点:a[i]=a[0] 取第一个元素开始比!
3 内层循环继续,(因为外层循环 i=0 的循环体还没全部操作完)此时j=1+1
4 再根据j=1+1判断,j < a.length ?是则再进入if();
重点:int j = i + 1;只是定义变量 j 开始的值。后续的判断j++ 改变值
5 如果数组长度是5,j=5 时,判断条件不成立,内层for()循环结束。i++ ,外层循环继续判断!!
6 此时i=1,j 开始值为 j=1+1。进入if()判断
重点:a[i]=a[1] 取得就是第二个元素开始比!
7 直到外层循环结束,整体循环才结束
- 示例重点
计数器思想:求个数、求总和
1 定义初始化表达式 如 int count=0、int sum=0;
2 运用到循环体中计算累计值++
3 使用
循环结构控制语句:
- 定义:用于对循环的控制
- 分类:
- break;
- continue;
- 说明
break:
在switch语句(退出当前case)
在循环语句中(完全退出当前循环)
continue:
只能用于循环语句中(跳出此循环一次的执行,后续的循环继续 )
网友评论