switch语句

用 if 语句实现:将阿拉伯数字转换为中文数字

public class IfToNum {
    public static void main(String[] args) {
        // 阿拉伯数字和中文数字的转换

        int n = 7;

        String str = n + "对应的中文大写数字是";
        
        if(n==1) {
            str += "壹";
            System.out.println(str);
        }else if (n==2) {
            str += "贰";
            System.out.println(str);
        }else if (n==3) {
            str += "叁";
            System.out.println(str);
        }else if(n==4) {
            str += "肆";
            System.out.println(str);
        }else if (n==5) {
            str += "伍";
            System.out.println(str);
        }else if (n==6) {
            str += "陆";
            System.out.println(str);
        }else if(n==7) {
            str += "柒";
            System.out.println(str);
        }else if(n==8) {
            str += "捌";
            System.out.println(str);
        }else if(n==9) {
            str += "玖";
            System.out.println(str);
        }else {
            System.out.println("请输入0~9的数字!");
        }
    }
}

那么像这种带有 int 类型数据的判断程序是否存在简便的方法呢?

这就要用到switch语句了~

 

switch 语句的语法

switch (用于比较的 int 值) {

  case 目标值1:

    需要执行的语句;

  case 目标值2:

    需要执行的语句;

  case 目标值3:

    需要执行的语句;

  ……

  default:

    缺省语句;

}

注意:switch 里的 case 子句中也可以有任意合法的语句,比如 if-else , for循环等。

 

现在我们用 switch 简化一下开头的程序:

public class SwitchToNum {
    public static void main(String[] args) {

        int n = 8;
        String str = n + "对应的中文大写数字是";

        switch (n) {
            case 1:
                str += "壹";
                System.out.println(str);
                break; // 这个break一定要加上,否则会继续执行后面的语句!
            case 2:
                str += "贰";
                System.out.println(str);
                break;
            case 3:
                str += "叁";
                System.out.println(str);
                break;
            case 4:
                str += "肆";
                System.out.println(str);
                break;
            case 5:
                str += "伍";
                System.out.println(str);
                break;
            case 6:
                str += "陆";
                System.out.println(str);
                break;
            case 7:
                str += "柒";
                System.out.println(str);
                break;
            case 8:
                str += "捌";
                System.out.println(str);
                break;
            case 9:
                str += "玖";
                System.out.println(str);
                break;
            default: // 这里放着缺省值。就是说上面的情况都不符合时,就走这个语句。
                System.out.println("请输入0~9的数字!");
                break;
        }
    }
}

解析:

1. 一般来说,每种情况下,一定要加上break语句,在符合某一条件时,就会跳出 switch 语句,否则程序会继续执行下去;

2. default 表示缺省,一般是放在最底部的,它是指如果上述 case 中没有一个符合条件,那么就会走这个默认的语句,但是记得也要加上break。

posted @ 2020-01-07 20:10  见嘉于世  阅读(662)  评论(0编辑  收藏  举报