1. 流程控制语句
1.1 概述
什么是流程控制语句
流程控制语句的分类
执行流程:
1.2 顺序结构
public static void main ( String[ ] args) {
System. out. println ( 1 ) ;
System. out. println ( 2 ) ;
System. out. println ( 3 ) ;
}
2. 判断语句
2.1 判断语句 --if
if(比较表达式) {
语句体;
}
执行流程:
先计算比较表达式的值,看其返回值是true还是false。 如果是true,就执行语句体; 如果是false,就不执行语句体;
public static void main ( String[ ] args) {
System. out. println ( "开始" ) ;
int a = 10 ;
int b = 20 ;
if ( a == b) {
System. out. println ( "a等于b" ) ;
}
int c = 10 ;
if ( a == c) {
System. out. println ( "a等于c" ) ;
}
System. out. println ( "结束" ) ;
}
2.2 判断语句 --if…else
if(比较表达式) {
语句体1;
} else {
语句体2;
}
执行流程:
首先计算比较表达式的值,看其返回值是true还是false。 如果是true,就执行语句体1; 如果是false,就执行语句体2;
public static void main ( String[ ] args) {
int a = 1 ;
if ( a % 2 == 0 ) {
System. out. println ( "a是偶数" ) ;
} else {
System. out. println ( "a是奇数" ) ;
}
System. out. println ( "结束" ) ;
}
2.3 判断语句 --if…else if…else
if语句第三种格式: if…else if …else
if(比较表达式1) {
语句体1;
} else if(比较表达式2) {
语句体2;
} else if(比较表达式3) {
语句体3;
}
...
else {
语句体n+1;
}
执行流程:
首先计算比较表达式1看其返回值是true还是false, 如果是true,就执行语句体1,if语句结束。 如果是false,接着计算比较表达式2看其返回值是true还是false,
public static void main ( String[ ] args) {
int x = 5 ;
int y;
if ( x>= 3 ) {
y = 2 * x + 1 ;
} else if ( x >= ‐1 && x < 3 ) {
y = 2 * x;
} else {
y = 2 * x ‐ 1 ;
}
System. out. println ( "y的值是:" + y) ;
}
2.4 if语句和三元运算符的互换
if语句和三元运算符的区
三元运算符实现的,都可以采用if语句实现。反之不成立。 什么时候if语句实现不能用三元改进呢?
public static void main ( String[ ] args) {
int a = 10 ;
int b = 20 ;
int c;
if ( a > b) {
c = a;
} else {
c = b;
}
c = a > b ? a: b;
}
3. 选择语句
3.1 选择语句 --switch
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
执行流程
首先计算出表达式的值 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉
public static void main ( String[ ] args) {
int weekday = 6 ;
switch ( weekday) {
case 1 :
System. out. println ( "星期一" ) ;
break ;
case 2 :
System. out. println ( "星期二" ) ;
break ;
case 3 :
System. out. println ( "星期三" ) ;
break ;
case 4 :
System. out. println ( "星期四" ) ;
break ;
case 5 :
System. out. println ( "星期五" ) ;
break ;
case 6 :
System. out. println ( "星期六" ) ;
break ;
case 7 :
System. out. println ( "星期日" ) ;
break ;
default :
System. out. println ( "你输入的数字有误" ) ;
break ;
}
}
switch语句中,表达式的数据类型,可以是byte,short,int,char,enum(枚举),JDK7后可以接收字符串。
3.2 case的穿透性
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。
public static void main ( String[ ] args) {
int i = 5 ;
switch ( i) {
case 0 :
System. out . println ( "执行case0" ) ;
break ;
case 5 :
System. out . println ( "执行case5" ) ;
case 10 :
System. out . println ( "执行case10" ) ;
default :
System. out . println ( "执行default" ) ;
}
}
4. 循环语句
4.1 循环概述
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形 成死循环
4.2 循环语句 --for
for ( 初始化表达式; 条件表达式;循环后的操作表达式) {
循环体;
}
执行流程:
执行初始化语句 执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行 如果是false,就结束循环 执行循环体语句; 执行循环后的操作表达式 回到B继续。
public static void main ( String[ ] args) {
System. out. println ( "HelloWorld" ) ;
System. out. println ( "HelloWorld" ) ;
System. out. println ( "HelloWorld" ) ;
System. out. println ( "HelloWorld" ) ;
System. out. println ( "HelloWorld" ) ;
System. out. println ( "HelloWorld" ) ;
System. out. println ( "HelloWorld" ) ;
System. out. println ( "HelloWorld" ) ;
System. out. println ( "HelloWorld" ) ;
System. out. println ( "HelloWorld" ) ;
System. out. println ( "‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐" ) ;
for ( int x = 0 ; x < 10 ; x++ ) {
System. out. println ( "HelloWorld" + x) ;
}
}
4.3 循环语句 --while
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
执行流程:
执行初始化语句 执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行 如果是false,就结束循环 执行循环体语句; 执行控制条件语句 回到第二句继续
public static void main ( String[ ] args) {
int i = 1 ;
while ( i<= 10 ) {
System. out. println ( "HelloWorld" ) ;
i++ ;
}
}
4.4 循环语句 --do…while
初始化语句;
do {
循环体语句;
控制条件语句;
} while ( 判断条件语句) ;
执行流程:
执行初始化语句 执行循环体语句; 执行控制条件语句 执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行 如果是false,就结束循环 回到b继续。
public static void main ( String[ ] args) {
int x= 1 ;
do {
System. out. println ( "HelloWorld" ) ;
x++ ;
} while ( x<= 10 ) ;
}
do…while循环的特点 :无条件执行一次循环体,即使我们将循环条件直接写成false,也依然会循环一次。这样的 循环具有一定的风险性
4.5 循环语句的区别
for和while的区别:
控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消 失,能够提高内存的使用效率。 在已知循环次数的时候使用推荐使用for,循环次数未知的时推荐使用whil
4.6 跳出语句
break
使用场景:
终止switch或者循环 在选择结构switch语句中 在循环语句中 离开使用场景的存在是没有意义的
public static void main ( String[ ] args) {
for ( int i = 1 ; i<= 10 ; i++ ) {
if ( i == 3 ) {
break ;
}
System. out. println ( "HelloWorld" + i) ;
}
}
continue
public static void main ( String[ ] args) {
for ( int i = 1 ; i <= 10 ; i++ ) {
if ( i == 3 ) {
continue ;
}
System. out. println ( "HelloWorld" + i) ;
}
}