流程控制语句(if、switch语句)
顺序结构语句是Java程序默认的执行流程,按照代码的先后顺序依次执行,从上到下,从左到右。
A. if语句1
实例讲解:
public class TextIf{
/*
格式:
if(关系表达式){
语句体;
}
执行流程:
首先计算关系表达式的值
如果结果为真(true)则执行语句体
如果结果为假(false)则不执行语句体
继续执行后面的语句内容
注意事项:
如果if语句所控制的语句体是一条语句,大括号可以省略,但是不是一条语句不好判断,如:int a = 1;系统认为时两条语句,即int a 是一条,a = 1;也是一条
if后面的()后面不能加";",否则认为if语句就此结束,不再包括后面{}里的内容
*/
public static void main(String[] args){
System.out.ptintln("开始");
int age = 17;
if(age>=18){
System.out.println("满足条件");
}
System.out.println("结束");
}
}
B. if语句2
实例讲解:
public class TextIf2{
/*
格式:
if(关系表达式){
语句体1;
}
else{
语句体2;
}
执行流程:
首先计算关系表达式,如果结果为真则执行语句体1,如果结果为假则执行语句体2
*/
public static void main(String[] args){
int num = 1;
if(num%2==0){
System.out.println("偶数");
}
else{
System.out.println("奇数");
}
}
}
C. if语句3
实例讲解:
public class TextIf03 {
/*
格式:
if(关系表达式1){
语句体1;
}
else if(关系表达式2){
语句体2;
}
else if(关系表达式3){
语句体3;
}
...
else{
语句体n;
}
注意事项:
最后一个else可以省略,但可能会导致程序运行无结果
*/
public static void main(String[] args){
int a = 70;
if(a>=80&&<=100){
System.out.println("优秀");
}
else if(a>=60&&a<=79){
System.out.println("一般");
}else if(a>=0&&a<=59){
System.out.println("不合格");
}
}
}
D. if语句实战案例
键盘录入考试分数,不同阶段打印不同文字。
import java.util.Scanner;
public class Instance{
public static void main (String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入");
int score = sc.nextInt();
if(score<=100&&score>=0){
if(score>=80&&score<=100){
System.out.println("优秀");
}else if(score>=60&&score<80){
System.out.println("合格");
}else {
System.out.println("不合格");
}
}
else {
System.out.println("输入错误!");
}
}
}
A.格式详解
import java.util.Scanner;
public class TextSwitch{
/*
格式:
switch(表达式){ //表达式是将要匹配的值,取值可以是byte、short、int、char、JDK5以后可以是枚举,JDK7以后可以是string
case 值1:
语句体1; //case:后面跟的是要和表达式比较的值,即被匹配的值
break; //break:表示中断、结束的意思,用来结束switch语句,
case 值2:
语句体2;
break;
...
default: //default:表示所有case后面的值都和表达式不匹配的时候,就执行该处的 语句体
语句体n+1;
break;
}
执行流程:1.先计算表达式的值
2.依次和case后面的值进行比较,如果有相同的值就执行相同值case后面
的语句体,执行完之后遇到break跳出switch语句
3.如果和所有的case后面的值都不匹配,就会执行default后面的语句体,
然后程序结束
注意事项:1.break不能省略,否则程序会继续执行下面case值后面的语句体,执行到程序完为止,
这叫做case的穿透效果
2.case后面的值不允许重复
3.case后面的值只能是常量不能是变量
*/
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("输入");
int a =sc.nextInt();
switch(a){
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("错误");
}
}
}
B. case穿透效果的应用
import java.util.Scanner;
public class TestSwitch{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("输入");
int a = sc.nextInt();
switch(a){
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("休息日");
break;
case 6:
case 7:
System.out.println("工作日");
break;
default:
System.out.println("错误");
}
}
}