逗号操作符
逗号操作符在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");
}