JavaNote 2.3枚举、分支、循环

一、循环

1、while(布尔表达式){   }//只要表达式为true,就会循环下去
2、do{   }while(布尔表达式)//先执行语句,然后判断是否满足条件,为true则循环
3、for(初始化;布尔表达式;更新循环变量){    }
4、增强型for循环,for(声明变量:数组/集合){     }

二、switch

switch(expression){
    case value :
       //语句
       break; //可选
    case value :
       //语句
       break; //可选
    //你可以有任意数量的case语句
    default : //可选
       //语句
}
 注:1、switch中的变量支持byte、short、int、 char、String
     2、case 标签必须为字符串常量或字面量
     3、case语句间必须使用break,避免穿透
三、enum

常用方法:
int compareTo(E o);比较此枚举与指定对象的顺序。
Class getDeclaringClass()返回与此枚举常量的枚举类型相对应的 Class 对象。
int ordinal()返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。
static T valueOf(String name)返回带指定名称的指定枚举类型的枚举常量。
说明:1、可以把enum当成class来理解,当使用enum关键字时,编译器便会生成一个继承java.lang.Enum的子类。
      2、enum的构造方法只能使用private
      3、枚举不能有finalize()方法

例:

 
  
public class Test12 {
     enum Test10 {
        dengyao(2,2,3),dengbian(2,2,2),budeng(2,3,4);
         Test10(int a,int b,int c){
            this.zuo = a;
            this.you = b;
            this.di = c;
        }
        private int zuo;
        private int you;
        private int di;
        public String toString(){
            return super.toString()+ "("+ zuo+"," + you +","+ di+")";
        }
    }
     enum Test11{
        A(Test10.dengbian),B(Test10.dengyao),C(Test10.dengyao);
        private Test10 test10;
        Test11(Test10 test10){
            this.test10 = test10;
        }
        public String toString(){
            return super.toString() + "……" + test10;
        }

    }
    public static void main(String args[]){
        System.out.println(Test10.budeng);
        System.out.println(Test11.A);
        System.out.println(Test11.valueOf("A"));
        System.out.println(Test11.valueOf(Test11.class,Test11.A.name()));//这个方法和上面的方法具有相同的效果,上面的是编译器提供的,这个是Enum自己的方法
        Test11 a[] = Test11.values();//编译器为我们添加的静态的values()方法
        for(Test11 test11 : a){
            System.out.println(test11);
        }
    }
}



你可能感兴趣的:(Java,Note)