JavaSE——分支语句(黑马个人听课笔记)

1.流程控制语句

  • 流程控制语句:通过一些语句,来控制程序的执行流程
  • 分类:顺序结构、分支结构(if、switch)、循环结构(for、while、do...while)

2.顺序结构

顺序结构是Java程序默认的执行流程,没有特定的语法结构,按照代码的先后顺序,依次执行。程序中大多数的代码都是这样执行的。

例:

public class Hello {
    public static void main(String[] args) {
        System.out.println("开始");
        System.out.println("执行代码1");
        System.out.println("执行代码2");
        System.out.println("执行代码3");
        System.out.println("结束");
    }
}

3.if语句

3.1 if语句格式1

//格式
if(关系表达式){
    语句体;
  }

执行流程:

  1. 首先计算关系表达式的值
  2. 如果关系表达式的值为true就执行语句体
  3. 如果关系表达式的值为false就不执行语句体
  4. 继续执行后面的语句内容

例:

public class Hello {
    public static void main(String[] args) {
        System.out.println("开始");
        int age = 18;
        if (age >= 18) {
            System.out.println("可以上网吧");
        }
        System.out.println("结束");
    }
}

3.2 if语句注意事项

  1. if语句中,如果大括号控制的是一条语句,大括号可以省略不写(不建议)
  2. if语句的( )和{ }之间不要写分号

会报错,编译器认为int num=10;是两条语句,变量定义一条,变量赋值一条,此时{ }不能省略

添加分号后,{ }内语句将不受前面()内条件所控制

3.3 if语句格式2

//格式
if(关系表达式){
   语句体1;
}else{
   语句体2;
}

执行流程:

  1. 首先计算关系表达式的值
  2. 如果关系表达式的值为true就执行语句体1
  3. 如果关系表达式的值为false就执行语句体2
  4. 继续执行后面的语句内容

例: 

public class Hello {
    public static void main(String[] args) {
        System.out.println("开始");
        int age = 17;
        if (age >= 18) {
            System.out.println("可以上网吧");
        }else {
            System.out.println("再等等");
        }
        System.out.println("结束");
    }
}

3.4 if语句格式3

//格式
if(判断条件1){
   语句体1;
} else if(判断条件2){
   语句体2;
}
...
else{
   语句体n+1;
}

执行流程:

  1. 首先计算判断条件1的值
  2. 如果值为true就执行语句体1;如果值为false就计算判断条件2的值;
  3. 如果值为true就执行语句体2;如果值为false就计算判断条件3的值;
  4. ...
  5. 如果没有任何判断条件为true,就执行语句体n+1。

例: 

import java.util.Scanner;

public class Hello {
    /*需求:
      键盘录入会员身份:
        1表示会员,2表示非会员,其余表示输入错误

       */
    public static void main(String[] args) {
        //键盘录入会员身份
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入:");
        int num = sc.nextInt();
        //使用if语句区分不同身份,程序打印不同结果
        if (num == 1) {
            System.out.println("会员身份");
        } else if (num == 2) {
            System.out.println("非会员身份");
        } else {
            System.out.println("您的输入有误");
        }
    }
}

4.switch语句

//格式
switch(表达式){
  case 值1:
          语句体1;
          break; 
  case 值2:
          语句体2;
          break; 
  ...
  default:
         语句体n+1;
         break;  
}

格式说明:

  • 表达式:(将要匹配的值)取值为byte、short、int、char、JDK5以后可以是枚举,JDK7以后可以是String。
  • case:后面跟的是要和表达式进行比较的值(被匹配的值)。
  • break:表示中断、结束的意思,用来结束switch语句。
  • default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。

执行流程:

  1. 拿着表达式的值,依次和case后面的值进行匹配,匹配成功,就执行对应语句,在执行的过程中,遇到break就会结束
  2. 如果所有的case都不匹配,就会执行default里面的语句体,然后程序结束掉 

 

public class Hello {
 /*
    需求:根据变量所记录的值,输出对应的星期
     例如:
        1-->星期一
        2-->星期二
        ...
    建议:如果要进行的判断,是范围性的判断,建议使用if
          如果要进行的判断,是固定值的判断,建议使用switch  
 */
    public static void main(String[] args) {
      int week = 1;
      switch (week){
          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;

      }
    }
}

注意事项:

  1. case后面的值只能是常量,不能是变量
  2. case后面给出的值,不允许重复
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值