switch和while循环

switch多选择结构

多选择结构还有一个实现方式是switch case语句

switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支

switch语句中的变量类型可以是:

byte 、short 、int、或者char

从JavaSE 7开始

switch支持字符串String类型了

同时case标签必须为字符串常量或字面量

switch (expression){
    case value :
        //接语句
        break;//可选
    case value :
        //语句
        break;//可选
        //你可有任意数量的case语句
    default://可选
        //语句
}
public class SwitchDemo01 {
    public static void main(String[] args) {
        // case 穿透,break击穿,后接break即switch语句被击穿,一直往下跑,不再终止
        //switch 匹配一个具体的值
        char grade =‘B‘;
        switch (grade){
            case  ‘A‘:
                System.out.println("优秀");
                break;//可选
            case  ‘B‘ :
                System.out.println("良好");
            case  ‘C‘  :
                System.out.println("及格");
            case ‘D‘:
                System.out.println("再接再厉");
            case ‘E‘:
                System.out.println("挂科");
            default:
                System.out.println("未知等级");
        //此时若grade成B,输出良好 及格 再接再厉 挂科 未知等级
        // 若grade改成A,则输出优秀,因为有break击穿,终止
        //若grade  改成无关的如F,输出为未知等级
        //即switch中先找到一个case ,输出,如果后边有break击穿,则循环停止,若没有,一直往下走;若定位不到一个case,则从defaut输出
        //因此。如果想得到单一的结果,则每一个case后边加上一个break,用于停止循环        

        }

    }
}
即向下边一样每个后边加一个break,用于终止循环
public class SwitchDemo01 {
    public static void main(String[] args) {
        // case 穿透,break击穿,后接break即switch语句被击穿,一直往下跑,不再终止
        //switch 匹配一个具体的值
        char grade =‘B‘;
        switch (grade){
            case  ‘A‘:
                System.out.println("优秀");
                break;//可选
            case  ‘B‘ :
                System.out.println("良好");
                break;//可选
            case  ‘C‘  :
                System.out.println("及格");
                break;//可选
            case ‘D‘:
                System.out.println("再接再厉");
                break;//可选
            case ‘E‘:
                System.out.println("挂科");
                break;//可选
            default:
                System.out.println("未知等级");

从JavaSE 7开始

switch支持字符串String类型了

public class SwitchDemo02 {
    public static void main(String[] args) {
        String name = "狂神";
        switch (name){
            case "秦疆":
                System.out.println("秦疆");
            break;
            case "狂神":
                System.out.println("狂神");
            break;
            default:
                System.out.println("是啥");
       //输出狂神         
        }
    }
}

反编译class文件

public class SwitchDemo02 {
    public static void main(String[] args) {
        //JDK7的新特性,表达结果可以是字符串!!!
        //字符的本质是数字,字符用hashCode()来一一对应的,从反编译程序中可看出

        //反编译: java....class(字节码文件)....反编译(在这里用IDEA来反编译)
        //反编译 看源码,看class文件的源码
        //直接找到project structure中找到要反编译的文件,复制路径,打开文件找到要反编译的class文件,复制,然后打开IDE中的一个代码程序文件夹(open in directory path),粘贴进去即得到反编译的程序

        String name = "狂神";
        switch (name){
            case "秦疆":
                System.out.println("秦疆");
            break;
            case "狂神":
                System.out.println("狂神");
            break;
            default:
                System.out.println("是啥");
        }
    }
}

循环结构

while循环

do .....while循环

for循环

在java5中引入了一种主要用于数组的增强型for循环

while循环

最基本的循环,结构为:

while(布尔表达式){
   //循环内容
}

注意:

1.只要布尔表达式为true,循环就会一直执行下去

2.我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环

3.少部分情况需要循环一直执行,比如服务器的请求响应监听等

4.循环条件一直为true就会造成无限循环(死循环),我们正常的业务编程中应该尽量避免死循环。会影响程序性能或者造成程序卡死崩溃!

public class WhileDemo01 {
    public static void main(String[] args) {
        //输出1-100
        int i = 0;
        while (i<100){
            i++;
            System.out.println(i);

        }
    }
}
注意i<100,i=100时,i++结果101赋值给i输出

死循环

public class WhileDemo02 {
    public static void main(String[] args) {
        while (true){
            //while里一直为true,没有限制,一直循环下去
            //主要用于等待客户端连接,定时检查等这种应用
        }
    }
}

计算1+2+3+...+100=?

 public static void main(String[] args) {
        //计算1+2+3+....+100等于多少?
        int i = 0 ;
        int sum = 0;
        while (i<100){
           i++;
            sum=sum + i;
        }
        System.out.println(sum);
        //输出5050
    }
}
或者下面这样也可,主要看i++的位置判断何时终止
    public class WhileDemo03 {
    public static void main(String[] args) {
        //计算1+2+3+....+100等于多少?
        int i = 0 ;
        int sum = 0;
        while (i<=100){
            sum=sum + i;
            i++;
        }
        System.out.println(sum);
        //输出5050
    }
}

switch和while循环

上一篇:3、复习


下一篇:ms17-010永恒之蓝复现