Controlling Execution

原创
2013/05/31 21:30
阅读数 69

逗号操作符

逗号操作符在java中特殊之处在于两个地方:

1. 定义同种类型的变量时可以这样写:

int i=10,j=20;//只有同种变量才行
2. 在for循环中的初始化条件和变化的步骤中对于同种类型的可以连接:
for(int i=1,j=2;i<=3&&j<=6;i++,j+=2){//注意必须是同种类型,可以用逗号连接任意多个,只要是同类型的
   System.out.println(i+" "+j);
}

foreach的Array和Collection的遍历方式

对于Array和Collection类型,可以通过foreach方式遍历:

List<Integer> list = new ArrayList<Integer>();
for(int i=0;i<10;i++){
   	list.add(i);
}
for(int temp:list){//foreach的方式
	System.out.println(temp);
}

java中的类似goto的方式

java中有label,形式为“label1:”。

label应该出现在循环前面,并且label和循环之间没有任何代码,否则会编译出错。

label1://后面和循环之间不能有任何代码,否则出错
for(;;){
	for(int i=1;i<100;i++){
		if(i%10==0){
			break label1;//当能整除10的时候跳出外层循环
		}
	}
}

循环应该是嵌套的,或者内层是个switch,这样才有意义。

label1:
for(int a=0;a<11;a++){
	switch(a){
	case 5:
		System.out.println(5);
		break label1;//因为到这一步时就会跳出for循环而不仅仅跳出break,所以只会打出一个5
	case 10:
		System.out.println(10);
		break;
	}
}

continue label 跳到一个label处,然后接着执行label后面的循环。

break label跳到label后面的循环外面,终止label后的循环的执行。

java中的switch

java中的switch后面的变量应该是整型,即int或char,对于非整型可以用enum来实现,enum可以与switch完美配合。

switch特殊的default:

int a=7;
switch(a){
default:
	System.out.println("not 6 or 10");	
case 6:
	System.out.println(6);
	break;
case 10:
	System.out.println(10);
	break;

}

上面的代码打出"not 6 or 10"和"6",default是没有匹配时默认执行的,如果default放在上面则应加上break,否则直到第一个break为止。

上面的代码如果a改成6,则default不会执行,只有匹配不到时才会执行。

enum与switch一起使用的例子:

enum PEOPLE{
    MALE("male"),FEMALE("female");
    private String str;
    private PEOPLE(String str){
        this.str = str;
    }
    public String toString(){//重写父类的方法,调用System.out.println(enum)时会调用
        return "_"+str;
    }
}
switch(PEOPLE.MALE){
     case MALE:
     System.out.println(PEOPLE.MALE);//_male
     break;
     case FEMALE:
     System.out.println(PEOPLE.FEMALE);
     break;
     default:
     System.out.println("terrible"); 
}

展开阅读全文
打赏
0
2 收藏
分享
加载中
更多评论
打赏
0 评论
2 收藏
0
分享
返回顶部
顶部