Java:流程控制语句——if、switch

流程控制语句——if、switch

if语句:
1. 单if语句

格式:

if(关系表达式){
    语句体;
}
  • 执行流程
    1. 首先判断关系表达式,看其结果是true还是false
    2. 如果是true就执行语句体
    3. 如果是false就不执行语句体

代码举例:

public class Demo1{
    public static void main(String[] agrs){
        int a=10;
        int b=20;
        if(a==b){
            System.out.println("a等于b");
        }//即当a等于b的时候执行输出语句,不等于时不执行,即跳过输出语句
    }
}
2. if…else语句

格式:

if(关系表达式){
    语句体1;
}else{
    语句体2;
}
  • 执行流程
    1. 首先判断关系表达式,看其结果是true还是false
    2. 如果是true就执行语句体1
    3. 如果是false就执行语句体2

代码举例:

public static void main(String[] agrs){
    int b=1;
    if(b % 2 == 0){
        System.out.println("b为偶数");
    }else{
        System.out.println("b为奇数");
    }//得b为奇数
}
3. if … else if … else

格式:

if(判断条件1){
    执行语句1;
}else if(判断条件2){
    执行语句2;
}
···//表示else if可以写很多次
}else if (判断条件n){
    执行语句n;
}else{
    执行语句n+1;
}
  • 执行流程
    1. 首先判断关系表达式1,看其结果是true还是false
    2. 如果是true就执行语句体1
    3. 如果是false就继续判断关系表达式2,看其结果是true还是false
    4. 如果是true就执行语句体2
    5. 如果是false就继续判断关系表达式3…看其结果是true还是false
    6. 如果没有任何关系表达式为true,就执行语句体n+1。

代码举例:

public static void main(String[] agrs){
    // x和y的关系满足如下:
    // x>=3,y = 2x + 1;
    //‐1<=x<3,y = 2x;
    // x<=‐1,y = 2x – 1;
    // 根据给定的x的值,计算出y的值并输出。
    // 定义变量
    int x = 5;
    int y;
    if (x>= 3) {
        y = 2 * x + 1;
    } else if (x >=1 && x < 3) {
        y = 2 * x;
    } else {
        y = 2 * x ‐ 1;
    }
    System.out.println("y的值是" +y);//这个+y表示字符串的连接作用
}

  • 指定考试成绩,判断学生等级
    • 85-100 优秀
    • 75-85 良好
    • 60-75 及格
    • 60以下 不及格
public static void main(String[] args) {
	int score = 100;
	if(score<0 || score>100){
		System.out.println("你的成绩是错误的");
	}else if(score>=85 && score<=100){
		System.out.println("你的成绩属于优秀");
	}else if(score>=75 && score<85){
		System.out.println("你的成绩属于良好");
	}else if(score>=60 && score<75){
		System.out.println("你的成绩属于及格");
	}else {
		System.out.println("你的成绩属于不及格");
	}
}
switch语句
1. switch语句:

格式:

swich(表达式){
    case 常数值1:
     语句体1;
     break;
    case 常数值2:
     语句体2;
     break;
    ···
    default:
     语句体n+1;
     break;
}
  • 执行流程
    • 首先计算出表达式的值
    • 其次,和case后面的常数值依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
    • 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

代码举例:

public static void main(String[] args){
    //定义变量,判断是星期几
    int weekday = 6;
    switch(weekday){
        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("您输入的数字有误");
            break;
    }//得星期六
}
  • switch语句中,表达式的数据类型,可以是byteshortintcharenum(枚举),JDK7后可以接收字符串
2. case的穿透性

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

public static void main(String[] args) {
	int i = 2;
	switch (i){
	  case 1:
		System.out.println("语文课");
		break;
	  case 2:
		System.out.println("数学课");
	  case 3:
		System.out.println("英语课");
	  default:
  		System.out.println("体育课");
  }//因为case 2后没有break,所以直接穿透下一个case,得数学课英语课体育课
}

上述程序中,执行case 2后,由于没有break语句,程序会一直向后走,不会再判断case,直到遇到break或直接运行完整体switch。

由于case存在穿透性,因此初学者在编写switch语句时,必须要写上break。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值