Java_分支结构:if、switch

文章详细介绍了程序的三种基本执行顺序:顺序结构、分支结构(if和switch)以及循环结构。在分支结构中,if提供了单分支、双分支和多分支的形式,switch则基于值的匹配来决定执行路径。if在处理复杂逻辑时更灵活,适合区间判断,而switch适用于与特定值的比较,格式清晰,性能较好。此外,文章还提到了switch的使用限制和穿透性特点及其优化代码的作用。
摘要由CSDN通过智能技术生成

程序中最经典的三种执行顺序:

  • 顺序结构:自上而下地执行代码
  • 分支结构:根据条件,选择对应代码执行,if、switch
  • 循环结构:控制某段代码重复执行,for、while、do-while

分支结构

if

if分支

  • 根据条件(真或假)来决定执行某段代码

if分支的三种形式

-形式1

if(a==1){
            System.out.println("if分支1");
        }
  • 形式2
if (a==1){
            System.out.println("if分支2");
        }else {
            System.out.println("if分支2的else");
        }
  • 形式3
if (a==1){
            System.out.println("if分支3的if");
        } else if (a==2) {
            System.out.println("if分支3的else-if");
        }else {
            System.out.println("if分支3的else");
        }

-完整代码

package com.badidu.ifchoice;
import java.util.Scanner;

public class ifchoice {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
//        1
        if(a==1){
            System.out.println("if分支1");
        }
//        2
        a = sc.nextInt();
        if (a==1){
            System.out.println("if分支2");
        }else {
            System.out.println("if分支2的else");
        }
//        3
        a = sc.nextInt();
        if (a==1){
            System.out.println("if分支3的if");
        } else if (a==2) {
            System.out.println("if分支3的else-if");
        }else {
            System.out.println("if分支3的else");
        }
    }
}

if使用的几个常见问题

  • if(条件){},()后不能跟";"否则{}中的代码将不受if的控制
  • 如果if语句的{}中只有一行代码的情况,{}可以省略不写(但是不推荐省略)

switch

switch分支

  • 是通过比较值来决定执行哪条分支

switch分支的执行流程

  1. 先执行表达式的值,再拿着这个值区与case后的值进行匹配
  2. 与哪个case后的值匹配为true就执行那个case的代码块,遇到break就跳出switch分支
  3. 如果全部case后的值与之匹配的都是false,则执行default块的代码

switch分支的导学案例

package com.badidu.switchc;

public class switchc {
    public static void main(String[] args) {
        char a = 'h';
        switch (a) {
            case 'a':
                System.out.println("age");
                break;
            case 'b':
                System.out.println("book");
                break;
            default:
                System.out.println("hello world!");
        }
    }
}

if、switch的比较,以及各自适合什么业务场景?

  • if在功能上远远大于switch
  • 当前条件是区间的时候,应该使用if分支结构
  • 当前条件是与一个一个的值比较的时候,switch分支更适合:格式良好,性能较好,代码美观

switch使用时的注意事项

使用switch分支的几点注意事项

  • 表达式类型只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String、不支持double、float、long
  • case给出的值不允许重复,且只能是字面量,不能是变量
  • 正常使用switch的时候,不要忘记写break,否则会出现穿透现象

switch穿透性在一些情况下可以简化代码

  • 当存在多个case分支的代码相同时,可以把相同的代码放到一个case块中,其他的case块都通过穿透性穿透到该case块执行代码即可,这样实现简化代码
  • 完整代码
package com.badidu.switchc;

public class chuantou {
    public static void main(String[] args) {
        char a = 'a';
        switch (a) {
            case 'a':
            case 'b':
            case 'c':
                System.out.println("被穿透");
                break;
            case 'h':
                System.out.println("is me!");
                break;
            default:
                System.out.println("hello world!");
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值