1、switch语句
语句格式:
String season = "spring";
switch(season){
case "spring":
System.out.println("Now is spring");
break;
case "summer":
System.out.println("Now is summer");
break;
case "autumn":
System.out.println("Now is autumn");
break;
case "winter":
System.out.println("Now is winter");
break;
default:
System.out.println("Season is unknown");
break;
}
switch语句就是根据switch里变量的值来匹配下面case中的变量的值,匹配成功,执行该case中的内容,如果没有与之相匹配的case,则执行default里的内容,每个case的最后处必须加上break,不然,匹配到相对应的case的时候,不会退出,还会将下面的所有的case全部执行一遍。
(PS:switch语句里的变量可以是byte、short、int、char、string,其中的string类型在JDK1.7版本以前是用不了的。)
2、循环四要素:
①初始化表达式
②布尔值测试表达式
③循环体
④更改表达式
for循环:
for(①;②;④){
③
}
上面for循环执行的顺序为①->②->③->④->②
while循环:
①
while(②){
③
④
}
do-while循环:
①
do{
③
④
}while(②);
3、foreach
foreach是在JDK1.5之后,Java为我们提供的增强的for循环
写法如下:
for(数组类型 变量 : 要循环的数组名) {
...使用变量...
}
这样写虽然写法非常的简单,但是我们也无法获得要循环的数组的下标值。
4、Java8中的foreach循环
List<String> list = new ArrayList<String>();
list.forEach(System.out::println);
或者
List<String> list = new ArrayList<String>();
list.forEach(x -> {
System.out.println(x);
});
上面涉及到Java8的新特性-----Lambda表达式,这个会在以后的博客中讲到,今天就一带而过。
5、break
跳出当前循环一般常用的是break。它的作用是终止当前的循环,并进行程序的下一个进程。如果break语句包含在多层嵌套的循环中,它只能跳出最内层的循环。
for (int i = 0; i < 10; i++) {
if (i == 5) {
break;
}
System.out.print(i + " ");
}
运行结果为:
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (j == 3) {
break;
}
System.out.print("j:" + j + " ");
}
System.out.print("i:" + i + " ");
}
运行结果为:
由上图例子可见,break只能退出一层循环。
如果想用break跳出多层循环的话,可以使用标志位。
exitFlag:
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (j == 3) {
break exitFlag;
}
System.out.print("j:" + j + " ");
}
System.out.print("i:" + i + " ");
}
上图的exitFlag就是标志位,该变量名可以随意命名。
运行结果为:
6、continue
当程序跑到这一语句的时候,将不再执行本次循环剩余的内容,而是直接进行下一个循环。
for (int i = 0; i < 10; i++) {
if (i == 5) {
continue;
}
System.out.print(i + " ");
}
运行结果为:
由上图可见,当i==5的时候,下面的输出语句便不再执行。
7、不要在foreach循环内进行元素的add/remove操作
remove元素请使用Iterator方式,如果并发操作,需要对Iterator对象加锁。
使用示例:
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
Iterator iterator = list.iterator();
while(iterator.hasNext()) {
String item = iterator.next();
if(删除元素的条件) {
iterator.remove();
}
}