有没有从第一章追到这里的呢?
目前程序结构分为:
顺序结构(从上往下依次执行)、分支结构、循环结构。
if分支的使用?【重点】
if基本语句:
(1) if结构:(if可以理解为如果)
if(布尔表达式/判断条件){
// 条件满足执行的语句
}
执行原理:如果布尔表达式结果为true(条件成立),执行if后面{}中的 内容,如果不成立,则不执行。
(2) if..else结构
if(布尔表达式/判断条件){
// 条件满足执行语句
}else{
// 不满足条件执行语句
}
执行原理:如果if中的布尔表达式结果为 true,执行 if后面{}中的内容;否则执行 else后面{}的内容。
多重if结构:
(1) 语法:
if(布尔表达式){
// 语句1
}else if(布尔表达式2){
// 语句2
}else if(布尔表达式3){
// 语句3
}else{
//语句4
}
执行原理:从上往下依次判断if中的条件是否成立,哪一个if中条件成立,则执行对应的 if后面{}中的语句;如果条件都不成立,则执行else后面{}中的内容。
注意:
if和 else if 没有个数限制,根据需求决定个数,而且最后的else也是根据需求决定是否需要。
if的嵌套结构:
(1) 语法:
if(布尔表达式/判断条件){
if(布尔表达式/判断条件){
// 语句
}else if(布尔表达式){
// 语句
}else{}
}else{
if(){}
}
执行原理:先判断外层的if条件是否成立,成立-结果为true,则执行内层 的if结构,如果外层if条件不成立,则执行外层if对应的else结构。
switch…case分支结构(等值分支):
语法:
switch(表达式){
case 值1:语句1;
case 值2:语句2;
case 值3:语句3;
default:语句n;
}
注意:jdk7.0及以上switch()中表达式结果数据类型为:byte、short、int、char、String→jdk7.0及以上。
(1) switch..case需要利用 break终止当前的 switch结构;
break作用终止、结束当前的switch..case结构;防止case穿透
(2) 执行的原理:
根据 switch()中表达式结果和case值进行比对,和哪一个 case后面的值 相等则执行对应后面的语句;
如果表达式的结果和所有的case值都不相 同,则执行default 后面的语句
(3) default没有位置的特定要求,通常定义在所有case的后面,而且利用 break终止
(4) case后面的值不能重复
什么是循环?
循环就是通过某一个条件,重复并且有规律的执行一段代码。
循环的组成部分:
循环的初始值(循环的起点)、循环条件、循环变量的改变(统计循环、控制)、循环体(重复执行的代码)
while循环:
语法:// 定义一个循环变量,给定一个初始值
while(布尔表达式/循环条件){
// 循环体
// 循环变量改变
}
执行原理:
根据循环变量初始化值先进行条件判断,如果满足循环条件(布尔表达式结果为 true),则执行循环体,从而将循环变量改变;然后再次判断循环条件,如果满足继续执行循环体内容,再执行循环变量的改变,直到循环条件不满足为止,则 循环结束,从继续执行循环结构后续的内容。
while循环的特点及注意事项:
(1) 特点:先判断,在执行,执行次数:0-n次
(2) 注意:
a. 如果循环初始值给的不合理,则有可能循环一次都不执行
b. 如果循环过程中,没有对循环变量进行改变,可能出现死循环
(死循环:周而复始的一直执行,没有结束的时间点,直到jvm内存耗尽为止,利用ctrl+c人为终止掉)
c. 如果循环条件设置的不合理,有可能导致死循环或是循环一次都不执行
do…while循环:
语法: //循环变量的初始化
do{
// 循环体
// 循环变量的改变
}while(循环条件); // 分号不能省略
执行原理:
根据给定的循环变量初始数据,无条件的先执行一次循环体,将循环变量进行改变,然后判断循环条件,条件成立,则再次执行循环体,进行循环变量的改变,继续判断循环条件…直到循环条件不满足(结果为false),结束整个循环结构,继续执行后续内容。
do…while循环的特点:
先执行,再判断,执行次数:1-n次。
for循环: 【重点】
语法:
for(循环变量初始化;循环条件;循环变量改变){
//循环体
}
执行原理:
根据给定的循环变量初始化数据,先进行条件判断,如果条件成立,则执行循环体,再进行循环变量的改变;再次判断循环条件,满足继续执行循环体,再次改变循环变量,判断循环条件是否满足,直到循环条件不再满足,结束循环,从而执行循环结构的内容。
for循环的特点:
先判断,再执行,执行次数0-n次。
注意事项:
(1)for先判断再执行,如果循环初始化数据给的不合理,有可能循环体一次都不执行。
(2)for()中循环变量初始化可以定义在for上面,举例:
a. for(int i=1;循环条件;循环变量的改变){}
b. int i=1;
for(;循环条件;循环变量的改变){}
(3) for()中循环条件如果不写,则默认为true;
for(;;)进入死循环,通常利用循环控制语句控制该循环
(4) for()中的循环变量改变内容可以定义在{}循环体中,但是建议定义在()中,提高代码可读性。
循环控制语句:(break、continue)
(1)break:
a.结束、终止循环结构
b.应用在switch...case中,终止switch...case结构,防止case穿透
(2)continue:
a.应用在循环结构中,结束、中止本次循环,从而进入下一次循环
b.不能应用在switch...case中
什么是循环的嵌套?
在一个循环结构中又定义另一个完整循环结构。
举例:
利用循环嵌套实现九九乘法表~
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
循环的次数:外层循环的次数*内存每次循环的次数