流程控制语句

1.流程控制

概述:

在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的流程对运行结果
有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现
我们要完成的功能。

2.判断语句

2.1判断语句if

格式:

if(关系表达式){

语句体;

}

执行流程
首先判断关系表达式看其结果是 true 还是 false
如果是 true 就执行语句体
如果是 false 就不执行语句体

2.2判断语句if...else

if(关系表达式){

语句体1;

}else{

语句体2;

}

执行流程
首先判断关系表达式看其结果是 true 还是 false
如果是 true 就执行语句体 1
如果是 false 就执行语句体 2

2.3判断语句if...else if...else

if ( 判断条件 1 ) {
执行语句 1 ;
} else if ( 判断条件 2 ) {
执行语句 2 ;
}
...
} else if ( 判断条件 n ) {
执行语句 n ;
} else {
执行语句 n + 1 ;
}
执行流程
首先判断关系表达式 1 看其结果是 true 还是 false
如果是 true 就执行语句体 1
如果是 false 就继续判断关系表达式 2 看其结果是 true 还是 false
如果是 true 就执行语句体 2
如果是 false 就继续判断关系表达式 看其结果是 true 还是 false
如果没有任何关系表达式为 true ,就执行语句体 n+1
练习:
指定考试成绩,判断学生等级
90-100 优秀
80-89
70-79
60-69 及格
60 以下 不及格
public class Score{
public static void main ( String [] args ) {
int score = 100 ;
if ( score < 0 || score > 100 ){
System . out . println ( " 你的成绩是错误的 " );
} else if ( score >= 90 && score <= 100 ){
System . out . println ( " 你的成绩属于优秀 " );
} else if ( score >= 80 && score < 90 ){
System . out . println ( " 你的成绩属于好 " );
} else if ( score >= 70 && score < 80 ){
System . out . println ( " 你的成绩属于良 " );
} else if ( score >= 60 && score < 70 ){
System . out . println ( " 你的成绩属于及格 " );
} else {
System . out . println ( " 你的成绩属于不及格 " );
}
}}
 

2.4if语句和三元运算符的互换

public class Demo{
public static void main ( String [] args ) {
int a = 10 ;
int b = 20 ;
// 定义变量,保存 a b 的较大值
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 语句体部分,然后程序结束掉。
switch 语句中,表达式的数据类型,可以是 byte short int char enum (枚举), JDK7 后可以接收字符串。

3.2case穿透性

switch 语句中,如果 case 的后面不写 break ,将出现穿透现象,也就是不会在判断下一个 case 的值,直接向后运
行,直到遇到 break ,或者整体 switch 结束。

4循环语句

4.1循环语句for

for ( 初始化表达式 ; 布尔表达式 ; 步进表达式 ){
循环体
}
执行流程
执行顺序:①②③④ > ②③④ > ②③④ ②不满足为止。
①负责完成循环变量初始化
②负责判断是否满足循环条件,不满足则跳出循环
③具体执行的语句
④循环后,循环条件所涉及变量的变化情况
练习:1-100偶数求和
public class Sum{
public static void main ( String [] args ) {
//1. 定义一个初始化变量 , 记录累加求和 , 初始值为 0
int sum = 0 ;
//2. 利用 for 循环获取 1‐100 之间的数字
for ( int i = 1 ; i <= 100 ; i ++ ) {
//3. 判断获取的数组是奇数还是偶数
if ( i % 2 == 0 ){
//4. 如果是偶数就累加求和
sum += i ;
}
}
//5. 循环结束之后 , 打印累加结果
System . out . println ( "sum:" + sum );
}

4.2循环语句while

格式:

初始化表达式
while ( 布尔表达式 ){
循环体
步进表达式
}
执行流程
执行顺序:①②③④ > ②③④ > ②③④ ②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句。
④循环后,循环变量的变化情况。

4.3循环语句do...while

初始化表达式
do {
循环体
步进表达式
} while ( 布尔表达式 );
执行流程
执行顺序:①③④ > ②③④ > ②③④ ②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句
④循环后,循环变量的变化情况

4.4循环语句的区别

 

循环语句的区别
for while 的小区别:
控制条件语句所控制的那个变量,在 for 循环结束后,就不能再被访问到了,而 while 循环结束还可以继
续使用,如果你想继续使用,就用 while ,否则推荐使用 for 。原因是 for 循环结束,该变量就从内存中消
失,能够提高内存的使用效率。
在已知循环次数的时候使用推荐使用 for ,循环次数未知的时推荐使用 while

4.5跳出语句

break
使用场景:终止 switch 或者循环
在选择结构 switch 语句中
在循环语句中
离开使用场景的存在是没有意义的
public static void main ( String [] args ) {
for ( int i = 1 ; i <= 10 ; i ++ ) {
// 需求 : 打印完两次 HelloWorld 之后结束循环
if ( i == 3 ){
break ;
}
System . out . println ( "HelloWorld" + i );
}
}
continue
使用场景:结束本次循环,继续下一次的循环
public static void main ( String [] args ) {
for ( int i = 1 ; i <= 10 ; i ++ ) {
// 需求 : 不打印第三次 HelloWorld
if ( i == 3 ){
continue ;
}
System . out . println ( "HelloWorld" + i );
}
}

4.6死循环

死循环: 也就是循环中的条件永远为 true ,死循环的是永不结束的循环。例如: while(true){}

4.7嵌套循环

所谓嵌套循环 ,是指一个循环的循环体是另一个循环。比如 for 循环里面还有一个 for 循环,就是嵌套循环。总
共的循环次数 = 外循环次数 * 内循环次数
嵌套循环格式:
for ( 初始化表达式 ; 循环条件 ; 步进表达式 ) {
for ( 初始化表达式 ; 循环条件 ; 步进表达式 ) {
执行语句 ;
}
}
嵌套循环执行流程:
执行顺序:①②③④⑤⑥ > ④⑤⑥ > ⑦②③④⑤⑥ > ④⑤⑥
外循环一次,内循环多次。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值