流程控制
1.1流程控制语句概述
1.2流程控制语句分类
顺序结构
顺序结构是程序中最简单最基本的结构。
分支结构(if,switch)
循环结构(for,while,do...while)
if语句
2.1if语句格式1
//格式
if(关系表达式){
语句体;
}
执行流程:
首先计算关系表达式的值
如果关系表达式的值为true就执行语句体
如果关系表达式的值为false就不执行语句体
继续执行后面的语句内容
import java.util.Scanner;
public class ScannerDemo {
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 (b==c){
System.out.println("a等于c");
}
System.out.println("结束");
}
}
2.2if语句格式2
//格式
if (关系表达式){
语句体1;
}else{
语句体2;
}
执行流程:
首先计算关系表达式的值
如果关系表达式的值为true就执行语句体1
如果关系表达式的值为false就执行语句体2
继续执行后面的语句内容
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args){
System.out.println("开始");
int a=10;
int b=20;
if (a>b){
System.out.println("a的值大于b");
}else{
System.out.println("a的值不大于b");
}
if (a==b){
System.out.println("a等于b");
}
int c=10;
if (b==c){
System.out.println("a等于c");
}
System.out.println("结束");
}
}
案例
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数");
int number= sc.nextInt();
if (number%2==0){
System.out.println(number+"是偶数");
}else {
System.out.println(number+"是奇数");
}
}
}
2.3if语句格式3
//格式
if(关系表达式1){
语句体1;
}else if(关系表达式){
语句体2;
}
...
else{
语句体n+1;
}
首先计算关系表达式的值
如果关系表达式的值为true就执行语句体1;如果值为false就计算关系表达式2的值
如果关系表达式的值为false就执行语句体2;如果值为false就计算关系表达式3的值
...
如果没有任何关系表达式为true,就执行语句n+1。
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args){
System.out.println("开始");
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个星期数(1~7):");
int week =sc.nextInt();
if (week==1){
System.out.println("星期一");
} else if (week==2) {
System.out.println("星期二");
} else if (week==3) {
System.out.println("星期三");
}else if (week==4){
System.out.println("星期四");
}else {
System.out.println("开心一下");
}
System.out.println("结束");
// Scanner sc = new Scanner(System.in);
// System.out.println("请输入一个整数");
// int number= sc.nextInt();
// if (number%2==0){
// System.out.println(number+"是偶数");
// }else {
// System.out.println(number+"是奇数");
// }
}
}
案例
数据测试:正确测试、边界测试、错误数据
switch语句
3.1switch语句格式
//格式
switch(表达式){
case值1:
语句体1;
break;
case值2:
语句体2;
break;
...
default:
语句体n1;
[break];
}
格式说明:
表达式:取值为byte,short,int,char,JDK5以后可以是枚举,JDK7以后可以是String
case:后面跟的是要和表达式进行比较的值
break:表示中断,结束的意思,用来结束switch语句
default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似
执行流程:
首先计算表达式的值
依次和case后面的值进行比较,如果有对应的值,就会执行响应的语句,在执行的过程中,遇到break就会结束
如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后程序结束掉
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args){
System.out.println("开始");
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个星期数(1~7):");
int week =sc.nextInt();
switch (week){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
default:
System.out.println("你输入的星期有误");
break;
}// if (week==1){
// System.out.println("星期一");
// } else if (week==2) {
// System.out.println("星期二");
// } else if (week==3) {
// System.out.println("星期三");
// }else if (week==4){
// System.out.println("星期四");
// }else {
// System.out.println("开心一下");
// }
System.out.println("结束");
// Scanner sc = new Scanner(System.in);
// System.out.println("请输入一个整数");
// int number= sc.nextInt();
// if (number%2==0){
// System.out.println(number+"是偶数");
// }else {
// System.out.println(number+"是奇数");
//case穿透
int month=sc.nextInt();
switch (month){
case 1:
case 2:
case 12:
System.out.println("冬季");
break;
}
// }
}
}
注意事项:在switch语句中,如果case控制的语句体后面不写break,将出现穿透现象,在不判断下一个case值的情况下,向下运行,直到遇到break,或者整体switch语句结束