目录
选择结构
if,if...else...
if结构的语句有四种编写方式:
第一种:
if(布尔表达式){
java语句;
java语句;
.....
}
第二种:
if(布尔表达式){
java语句;
java语句;
.....
}else{
java语句;
java语句;
.....
}
第三种:
if(布尔表达式1){
java语句;
java语句;
.....
}else if(布尔表达式2){
java语句;
java语句;
.....
}else if(布尔表达式3){
java语句;
java语句;
.....
}......
第四种:
if(布尔表达式1){
java语句;
java语句;
.....
}else if(布尔表达式2){
java语句;
java语句;
.....
}else if(布尔表达式3){
java语句;
java语句;
.....
}......else{
java语句;
java语句;
.....
}
总结:1、对应java中的if语句来说,只要有一个分支语句执行,整个if语句结束。
2、对应以上第二种、第四种结构,都带有else分支,这两种方式可以保证100%有分支执行。
3、对应以上第一种、第三种结构,有可能一个分支都不执行。
4、所有的控制语句都是可以嵌套使用的,只要合理即可,如:
if(布尔表达式1){
if(布尔表达式1){
java语句;
java语句;
.....
}else if(布尔表达式11){
java语句;
java语句;
.....
}
}else{
if(布尔表达式2){
java语句;
java语句;
.....
}else if(布尔表达式21){
java语句;
java语句;
.....
}
}
5、if分支中只有一条java语句时,可以省略“{}”。即以下两种写法等价,一般建议使用第一种。
//第一种
if(布尔表达式){
一条java语句;
}
//第二种
if(布尔表达式) 一条java语句;
switch
switch语法结构:
switch(int或String类型的字面值或变量){
case int或String类型的字面值或变量:
java语句;
......
break;
case int或String类型的字面值或变量:
java语句;
......
break;
case int或String类型的字面值或变量:
java语句;
......
break;
......
default:
java语句;
......
}
switch执行原理:
1、switch后面小括号当中的"数据"和case后面的"数据"按照自上而下的顺序一一执行,匹配成功的语句执行。
2、匹配成功的分支执行,分支当中最后有"break;"语句时,整个switch结束执行。
3、分支当中最后没有"break;"语句时,直接进入下一个分支执行(不进行匹配),这种现象被称为case穿透。
4、如果所有分支都没有匹配成功,当有default语句时,会执行default分支当中的语句。
5、switch后面和case后面只能是int或String类型的数据(JDK7及其之后的版本),不能是其他类型。当然,byte\short\char类型的数据也可以直接放在switch和case后面,因为byte/short/char可以自动类型转换。
6、case可以合并:
int i = 10;
switch(i){
case 1: case 2: case 3: case 10:
System.out.println("Test!");
break;
}
循环结构
循环语句-for
for循环的语法结构:
for(初始化表达式;布尔表达式;更新表达式){
需循环执行的代码片段;
}
for循环的执行原理:
1、初始化表达式、布尔表达式、更新表达式都不是必须的,但是两个“;”是必须的。
2、初始化表达式最先执行,并且在整个for循环中只执行一次。
3、布尔表达式必须是true/false,不能是其他值。
4、for循环的执行过程:先执行初始化表达式,并且该表达式只执行一次;然后判断布尔表达式的结果是true或false;如果布尔表达式true,则执行循环体,然后执行更新表达式并判断布尔表达式结果;如果布尔表达式false,则循环结束。
5、循环语句可以嵌套使用。
使用for循环输出九九乘法表:
/*
九九乘法表:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
*/
public class MultiplicationTable{
public static void main(String[] args){
for(int i = 1; i <= 9; i ++ ){
for(int j = 1; j <= i; j ++ ){
System.out.print(j + "*" + i + "=" + (j * i) + " ");
}
System.out.println();//换行
}
}
}
循环语句-while
while循环的语法结构:
while(布尔表达式){
循环体;
}
while循环的执行原理:
先判断布尔表达式的结果,如果为true,则执行循环体,然后再判定布尔表达式的结果;如果为假,则循环结束。
while循环的执行次数:0~N次。
循环语句-do...while
do...while循环的语法结构:
do{
循环体;
}while(布尔表达式);
do...while循环的执行原理:先执行一次循环体,然后判断布尔表达式的结果,如果为true,则继续执行循环体;如果为假,则循环结束。
do...while循环的执行次数:至少执行一次。
控制循环的结构
控制语句-break
1、break是Java语言当中的关键字,被翻译为“中断/折断”;
2、break + “;”可以成为一个单独的完整的Java语句:break;
3、break语句使用在switch语句中,用来终止switch语句执行;同样可以用在循环语句中,用来终止循环的执行。
4、break;语句用在for,while,do...while循环语句中用来跳出循环,终止循环的执行。默认情况下,终止的是离它最近的循环,但可以指定终止的循环。
public class Test{
public static void main(String[] args){
A:for(int i = 0; i <= 10; i ++ ){//给for循环取名A
B:for(int j = 0; j <= 10; j ++ ){//给for循环取名B
if(j == 5){
//break;//终止当前的for循环
//break A;//终止外层循环A
//break B;//终止内层循环B
}
System.out.print(i);
}
}
}
}
控制语句-continue
1、continue表示“继续/go on/下一个”。
2、continue + ";"构成一个完整的Java语句,主要出现在循环语句中用于控制循环的执行。
3、break和continue的区别:
break表示循环不执行了;
continue表示本次循环不执行,直接进入下一次循环执行。
4、continue也可以有语法:【continue 循环名称;】类似于:【break 循环名称;】