流程控制语句定义:
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。
也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。
而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
流程控制语句
顺序结构
顺序结构是Java语言中最简单的流程控制,没有特定的语法结构,只要程序依次按照从上往下的顺序逐个执行语句即可。
如:
public class Demo3 {
public static void main(String[] args) {
System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("4");
System.out.println("5");
}
}
结果会输出:
1
2
3
4
5
选择结构
概述:也被称为分支结构,选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。
if语句
if(判断条件语句){
语句体;
}
判断条件是是否满足,如果值满足,则执行语句体,不满足则不执行语句体。
注意:if语句的返回值是boolean类型,只有true和false两种。
if(判断条件语句){
语句体;
}else{
语句体;
}
如果判断条件满足执行if后面大括号中的语句体,如果不满足则执行else后面大括号的语句体。
例如:获取两个数中较大的值
import java.util.Scanner;
public class Demo3 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入第一个数");
int num1=scanner.nextInt();
System.out.println("请输入第二个数");
int num2=scanner.nextInt();
int max;
if (num1>num2){
max=num1;
}else {
max=num2;
}
System.out.println(max);
}
}
if(判断条件语句1){
语句体;
}else if(判断条件语句2){
语句体;
}else if(判断条件语句3){
语句体;
}....
当有一个判断条件语句满足时,执行它下面的的语句体,if语句结束。
需求:键盘录入一个成绩,判断并输出成绩的等级。
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入你的成绩");
int score=sc.nextInt();
if(score<60){
System.out.println("E等");
}else if (score>60&&score<=69){
System.out.println("D等");
}else if (score>=70&&score<=79){
System.out.println("C等");
}else if (score>=80&&score<=89){
System.out.println("B等");
}else if (score>=90&&score<=100){
System.out.println("A等");
}else System.out.println("成绩输入不合法");
}
}
switch语句
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;
....
default:
语句体n+1;
break;
}
- 表达式取的值可以是byte,short,int,char。JDK1.5以后支持枚举类型(后面讲),JDK1.7以后可以支持String类型。
- case后面跟的是要和表达式比较的值。
- 语句体可以是一条语句或多条语句。
- break表示中断,如果有一个case的值与表达式的值相同,那么执行下面语句体后这个switch语句结束。
- 如果匹配不到任何一个case的值,那么执行默认项default。
例如:给定一个值输出对应的星期一,星期二,星期三…星期日
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入1---7之间");
int day=scanner.nextInt();
switch (day){
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("输入的数不在1---7之间");
break;
}
}
}
循环结构
循环结构:
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
for语句
for(初始化表达式语句;判断条件语句;控制条件语句) {
循环体语句;
}
- 初始化表达式只执行一次。
- 判断条件如果满足,就执行该循环体语句,如果不满足,该循环语句结束
- 每执行一次循环体语句,控制条件会改变一次初始化表达式语句的值。
- 判断条件语句的值为布尔类型。
例:在控制台输出所有的”水仙花数”
所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
举例:153就是一个水仙花数。
public class Demo5 {
public static void main(String[] args) {
for (int i = 100; i <1000; i++) {
int a=i/100;
int b=i%100/10;
int c=i%10;
if (a * a * a + b * b * b + c * c * c == a * 100 + b * 10 + c){
System.out.println(i);
}
}
}
}
while语句
初始化条件语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
例:求1-100之和
public class Demo6 {
public static void main(String[] args) {
int i=1,sum=0;
while (i<=100){
sum+=i;
i++;
}
System.out.println(sum);
}
}
do…while语句
初始化条件语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);
注意:程序先执行一次后,再进行判断时候满足条件。
控制跳转语句
break
- break在switch语句中起中断作用,而在循环语句中起结束本次循环的作用,break在哪个大括号中,就结束它所在大括号的循环。
- break也可以结束整个循环嵌套的程序,比如给外层和内层循环附上标签,在内层循环可以利用标记结束外层循环,即结束整个循环。
- 离开循环语句,switch语句,break就没有意义
continue
continue的作用是在循环中跳过本次循环,执行下一次循环。离开循环语句,continue就没有意义。
ruturn
ruturn写在方法中,用来退出这个方法,并带回返回值。