在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句。
1) 顺序控制
2) 分支控制
3) 循环控制
就是程序从上到下依次执行,中间没有任何判断和跳转
分支结构又被称为选择结构,根据条件成立与否来执行操作,
if 条件结构是根据条件判断之后再做处理
if(条件语句){…}
if (条件语句){…}else{…}
if (条件语句){…}else if(条件语句){…}
if (条件语句){…}else if(条件语句){…}else{...}
例子:用户输入学生成绩,判断成绩是否及格,判断条件为 优良: > 90、良好:81-90、中:60-80、不及格:<60
public class Demo4{ public static void main(String[] args){ Scanner input = new Scanner(System.in); System.out.println("请输入成绩:"); int score s= input.nextInt(); // 91 优 81-90 良 60-80 中 60 差 if(score >= 91){ System.out.println("您的成绩是优秀!继续加油哦!"); }else if(score >= 81 & score < 91){ System.out.println("您的成绩是良好!还要努力哦!"); }else if(score >= 60 & score <= 80){ System.out.println("您的成绩是中等!还要加倍努力哦!"); }else{ System.out.println("您的成绩是差!准备补考费吧!"); } } }
switch(表达式){
case 取值 1: 语句块 1;break;
case 取值 n: 语句块 n;break;
default: 语句块 n+1;break;
}
示例:
public static void main(String[] args) { /* 案例:Switch01.java 请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g a 表示星期一,b 表示星期二 … 根据用户的输入显示相应的信息.要求使用 switch 语句完成 思路分析 1. 接收一个字符 , 创建 Scanner 对象 2. 使用 switch 来完成匹配,并输出对应信息 代码 */ Scanner myScanner = new Scanner(System.in); System.out.println("请输入一个字符(a-g)"); char c1 = myScanner.next().charAt(0);// //在 java 中,只要是有值返回,就是一个表达式 switch(c1) { case 'a' : System.out.println("今天星期一,猴子穿新衣"); break; case 'b' : System.out.println("今天星期二,猴子当小二"); break; case 'c' : System.out.println("今天星期三,猴子爬雪山.."); break; //..... default: System.out.println("你输入的字符不正确,没有匹配的"); } System.out.println("退出了 switch ,继续执行程序"); }
switch 注意事项和细节讨论:
循环结构是一种重复结构,如果条件成立,它会重复执行某一循环体,直到出现不满足的条件为止。
for(初始化参数;判断条件 ;更新循环变量){
循环体;
}
1) 循环条件是返回一个布尔值的表达式
2) for(;循环判断条件;) 中的初始化和变量迭代可以写到其它地方,但是两边的分号不能省略。
3) 循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代 语句,中间用逗号隔开
应用举例:
public class ForLoop { public static void main(String [] args){ int result = 0; for(int i=1; i<=100; i++) { result += i; } System.out.println("result=" + result); } }
符合条件,循环继续执行;否则,循环退出
特点:先判断,再执行
while(条件表达式){
//语句块;
}
实现示例: 录入班级人数和学员成绩,计算班级学员的平均成
int sum = 0; int score = 0; int avg = 0; int studentNum = 20; while(i<=studentNum){ System.out.print("请输入第" + i + "位同学的成绩:"); score = input.nextInt(); sum = sum + score; i++; } avg = sum / stuNum ;
注意事项和细节说明
1) 循环条件是返回一个布尔值的表达式
2) while 循环是先判断再执行语句
先执行一遍循环操作,符合条件,循环继续执行;否则,循环退出
特点:先执行,再判断
do {
循环操作
}while ( 条件表达式 )
while 循环和 do-while 循环的区别?
while:先判断条件,如果条件满足,再执行循环操作 do while:先执行一遍循环操作,然后再判读条件,如果条件满足,继续执行循环操作
1) continue 语句用于结束本次循环,继续执行下一次循环。
2) continue 语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环 , 这个和前面的标签的 使用的规则一样.
3)break结束当前的循环(多层循环嵌套的时候,只结束当前所在的一层循环)