距离上一次写博客 ,已经好长时间了。最近工作太忙了。晚上还要看OCJP的书,为考证努力。虽然都是些基本内容 ,但是梳理一遍 还是发现以前自己在学校学习的java不深。
废话不多说了。来看正文。
for
也许,读者看见这个 会好奇 ,这个我会不会用? 我超级会用的。是的 以前 我也超级会用。
先看 for语句 结构
for( /*Initianlization*/; /*Condition*/ ; /* Iteration*/ ){
}
这个呢有几点值得注意的。
- 括号里面的三个部分 都可以省略,都省略的话,就是一个死循环,也可以省略其中任何一个 或两个 ,这些都是合法的。
- Initianlization 声明和初始化 0个,1个,或者同一个类型的多个变量 用 , 隔开(声明也可以放在for语句上面)
- Condition: 条件表达式 这个只能有一个 或者省略
- Iteration: 迭代表达式 这个可以是任何语句(你可以写任何无关的代码在这里),不一定 递增,递减的 可以省略
- for 语句里面声明的变量 ,在for语句以外 不能使用。这个编译器都会提示的
例子
for (int i = 0, y = 1;(y < 10) & (i > -10); y++, i--, System.out.println("one"), System.out.println("two")) {
System.out.println("符合条件");
}
上面这段代码是合法的。运行结果
switch
switch呢,也有比较一些注意点。用大家肯定 都会用的,就是不怎么知道细节而已。
switch语句格式
switch (variable){
case variable1:
//代码 可选break
case variable2:
//代码 可选 break
default:
//代码
}
几点注意点
- variable 必须是**枚举,byte, short ,char,int ,String ** 其他类型都是不可以的。
- variable1 和 variable2 这些必须是字面值(就是case 10这样的),或者编译期变量(就是程序运行前编译,编译器要能知道 这个值的确切值,而不是程序运行时候 才知道)
- byte, short ,char,int,这四个类型是可以混合使用的。看下面例子
int b = 10;
final int anint = 11;
final char aChar = 'b';
final short anShort = 16;
final byte anByte = 1;
switch (b) {
//byte
case anByte:
System.out.println(10);
break;
//char
case aChar:
//short
case anShort:
//int
case anint:
}
这是合法的。
重点重点
- 匹配的case语句只是进入case代码行的入口,但是除非遇见break语句,否则匹配的case语句并不是程序执行的唯一的case语句。就是执行case入口以后,会继续向下执行,直到遇到break语句或到达switch代码块的结尾。 看下面例子
int a = 3;
switch (a) {
case 1:
System.out.println("1");
case 2:
System.out.println("2");
case 3:
System.out.println("3");
//注意 这里没有加break
case 4:
System.out.println("4");
//如果这里 加上break 那么运行结果就是 3 4
case 5:
System.out.println("5");
default:
System.out.println("default");
}
运行结果:
可以看见 没有break语句,会一直执行到末尾。
- 在switch语句中,default代码块可以放在任意地方,因此当前面没有匹配的case时候,会进入default代码块,如果default代码块没有使用break。则程序会继续执行 。直到遇到break语句或到达switch代码块的结尾。
这个呢 就是 我们只需要 把 default语句 看成普通的case语句 就可以了
例子
int a = 10;//这里变成10 下面 没有和他匹配的语句
switch (a) {
case 1:
System.out.println("1");
case 2:
System.out.println("2");
default://提到前面来
System.out.println("default");
case 3:
System.out.println("3");
//注意 这里没有加break
case 4:
System.out.println("4");
break;
case 5:
System.out.println("5");
}
运行结果:
ok 完结,下一篇我要写Android录屏 传送直播的 这星期写