一、选择语句
关于java语言当中的if语句,属于选择结构,if语句又被称为分支语句/条件控制语句:
1.if语句的语法结构:四种编写方式
第一种:
if(布尔表达式){
java语句;
java语句;
…….;
}
第二种:
if(布尔表达式){
java语句;
java语句;
…….;
}else{
java语句;
java语句;
…….;
}
第三种:
if(布尔表达式){
java语句;
java语句;
…….;
}else if(布尔表达式){
java语句;
java语句;
…….;
}else if(布尔表达式){
java语句;
java语句;
…….;
}……
第四种:
if(布尔表达式){
java语句;
java语句;
…….;
}else if(布尔表达式){
java语句;
java语句;
…….;
}else if(布尔表达式){
java语句;
java语句;
…….;
}else{
java语句;
java语句;
……
}
2.重点:对于java中的if语句来说,只要有一个分支执行,整个if语句全部结束。
3.注意:以上的第二种编写方式和第四种编写方式都带有else分支,这两种方式可以100%保证会有分支执行
4.”所有的控制语句“都是可以嵌套使用的,只要合理嵌套使用。
5.if语句的分支中只有一条java语句的话,大括号可以省略。但不建议这么写。
关于switch语句;
1.switch也属于选择结构,也是分支语句
2.switch语句的语法结构:
一个比较完整的switch语句应该这样编写:
switch(int或String类型的字面值或变量){
case int或String类型的字面值或变量:
java语句;
break;
case int或String类型的字面值或变量:
java语句;
break;
case int或String类型的字面值或变量:
java语句;
break;
case int或String类型的字面值或变量:
java语句;
break;
default :
java语句;
break;
}
3.switch语句的执行原理:
switch后面的小括号当中的”数据“和case后面的”数据“进行一一匹配,匹配成功的分支执行。按照自上而下的顺序依次执行。
4.匹配成功的分支执行,分支当中最后有”break;"语句的话,整个switch语句终止。
5.匹配成功的分支执行,分支当中没有“break;"语句的话,直接进入下一个分支执行(不进行匹配),这种现象被称为case穿透现象。【提供break;语句可以避免穿透】
6.所有分支都没有匹配成功,当有default的语句的话,会执行default当中的程序
7.switch后面和case后面只能是int或String类型的数据,不能探测其他类型的数据。
*当然byte,short,char也可以直接写到switch和case后面,因为他们可以进行自动类型转换,byte,short,char可以自动转换成int类型。
*JDK6版本的,switch和case后面只能探测int类型
*JDK7之后包括7版本在内,引入新特性,switch关键字和case关键字后面可以探测int或String类型的数据。
8.case可以合并:
int i=1;
switch(i){
case 1: case 2: case 3: case 4:
System.out.println("Test");
9.long x = 100L;
switch(x){} //编译报错
//解决编译报错
long x = 100L;
switch((int)x){}
二、循环语句
1.循环结构:
在程序当中总有一些需要反复的/重复的执行的代码,假设没有循环结构,那么这段需要重复
执行的代码自然是需要重复编写的。代码无法得到重复使用,所以多数编程语言都是支持循环
结构的。将来把需要反复执行的代码片段放到”循环体“,在联合”计数器“,共同控制这段
需要反复执行的代码。
2.基本上所有的编程语言支持的循环结构包括三种:
*for循环
*while循环
*do….while循环
关于for循环:
1.语法结构:
for(初始化表达式;布尔表达式;更新表达式){
//需要执行的代码片段【循环体:由java语句构成】
}
2.for循环的执行过程/执行原理?
ⅰ:初始化表达式、布尔表达式、更新表达式都不是必须的!【但是两个分号是必须的·】
ⅱ:初始化表达式最先执行,并且在整个for循环当中之执行一次
ⅲ:布尔表达式必须是true/false,不能是其他值
ⅳ:for的执行过程:
*先执行初始化表达式,并且该表达式只执行一次
*判断布尔表达式的结果是true还是false
——布尔表达式true
*执行循环体
*执行更新表达式
*判断布尔表达式的结果是true还是false
——布尔表达式的结果是true
*执行循环体
*执行更新表达式
*判断布尔表达式的结果是true还是false
……
——布尔表达式的结果是false
——布尔表达式false
循环结束
3.for循环当中的变量的作用域是仅限于当前for循环内部使用
4.循环体中可以编写其他的控制语句,控制语句可以嵌套使用
5.嵌套使用时,即使循环体当中是一个for循环语句将,不要将这个for特殊化,它也是一个普通的
for循环。
6.内层循环中的变量名和外层循环中的变量名不能重名。
关于while循环:
1.语法结构:
while(布尔表达式){
循环体:
}
2.while循环的执行原理:
先判断布尔表达式的结果是:
*true
—执行循环体
*判断布尔表达式的结果:
*true
—执行循环体
*判断布尔表达式的结果是:
*true
*false
*false
—循环结束
*false
—循环结束
3.while循环的循环次数:
0~N次
注意:while循环的循环体可能执行次数为0次
关于do…while循环:
1.语法结构:
do{
循环体;
}while(布尔表达式);
2.do…while循环的执行原理
布尔表达式为真则循环,为假则退出循环
3.do…while循环的执行次数:
do…while循环的循环体代码片段执行次数是:1-N次【至少一次】
4.注意:do…while循环语句最终有一个“分号”。
三、break语句和continue语句
关于break语句:
1.break是java语言当中的关键字,被翻译为“中断/折断”
2.break+";"可以成为一个单独的完整的java语句:break;
3.break语句使用在switch语句当中,用来终止switch语句执行
4.break语句同样可以使用在循环体语句当中,用来终止循环的执行
5.break;语句使用在for while do…while 循环体语句当中用来跳出循环,终止循环的执行。
因为当程序循环到某个条件的时候,后续的循环没必要执行了,在执行也是耗费资源,所以
可以终止循环,这样可以提高程序的执行效果。
6.在默认情况下:break语句终止的是它最近的循环语句。当然也可以指定终止某个循环。
需要给循环起名,采用这种语法:break 循环名称;
关于continue语句:
1.continue表示:继续/go on/下一个
2.continue也是一个continue关键字加一个分号构成一个单独的完整的java语句,主要出现循环体语句当中用来控制循环的执行
3.break和continue的区别?
*break表示循环不执行了
*continue表示直接进入下一次循环继续执行。
例: for(int i=0;i<10;i++){
if(i==5){
break;
}
System.out.println("i="+i); //0 1 2 3 4
}
for(int i=0;i<10;i++){
if(i==5){
continue;只要这个语句执行,当前本次循环停止,直接进入下一次循环“继续”执行
}
System.out.println("i="+i); //0 1 2 3 4 6 7 8 9
}