break:用于switch或循环,结束当前switch或循环。
例如:先写一段switch语句
public class HelloWorld {
public static void main(String[] args) {
int i=1;
switch(i){
case 1 :
System.out.println("123");
case 2 :
System.out.println("456");
default :
System.out.println("789");
}
System.out.println("0");
}
}
其运行结果为
可以看到,原代码会从case符合的那一句起一直往下全部执行。
而当使用break结束switch时
public class HelloWorld {
public static void main(String[] args) {
int i=1;
switch(i){
case 1 :
System.out.println("123");
break;
case 2 :
System.out.println("456");
break;
default :
System.out.println("789");
}
System.out.println("0");
}
}
符合case的那段语句执行后,switch会被结束不再执行,并且并不影响break所在的switch语句以外的语句的执行。
return;用于结束当前方法,方法内return关键字下面的代码不再执行
和break不同的是,break结束的是switch或者循环语句,而return结束的是方法,这也就意味着return执行后其所在的方法后面的语句都不再执行。
public class HelloWorld {
public static void main(String[] args) {
int i=3;
switch(i){
case 1 :
System.out.println("123");
break;
case 2 :
System.out.println("456");
break;
default :
System.out.println("789");
return;
}
System.out.println("0");
}
}
因为i=3,所以直接来到了default并输出789,然后执行return,由于return中止了这个方法,因此后面的0并没有输出。
与break类似的一点是:return只会结束其所在的方法,并不会影响其他方法的运行。
public class ReturnTest {
static void show(){
System.out.println("show方法");
return;
}
public static void main(String[] args) {
show();
System.out.println("main方法");
}
}
可以看到,尽管在执行show方法后执行了return,但后来的main方法并没有受到影响。
值得注意的是,由于return执行时结束其所在方法的特性,其所在方法之后的语句将不再被执行,因此可能导致某些语句完全不可达,最终报错。
例如:
public class HelloWorld {
public static void main(String[] args) {
int i=3;
switch(i){
case 1 :
System.out.println("123");
case 2 :
System.out.println("456");
default :
System.out.println("789");
return;
}
System.out.println("0");
}
}
在这个switch语句中,由于case1与case2并没有break来将其结束,则程序一定会运行至default,输出789后return,结束方法,导致最后的System.out.println("0")语句无论如何也不可能运行,即此语句不可达,并且报错。
continue:只用于循环,结束当次当前循环进入下次循环,注意:结束意味着循环体中continue关键字下面代码不再执行
continue与break都可以用于结束循环,但不同的是break结束的是其所在的整次循环,执行break后会跳出循环并执行之后的语句;而continue则是结束当次的循环,并直接开始下一次循环。
例如:用break结束循环
public class HelloWorld {
public static void main(String[] args) {
int a;
for(a=1;a<3;a++){
if(a==2){
System.out.println("123");
break;
}
}
System.out.println(a);
}
}
a最后值为2,是因为当a等于2时输出123后break直接跳出了循环,a不再进行循环中的自增等操作。
而用continue结束循环时
public class HelloWorld {
public static void main(String[] args) {
int a;
for(a=1;a<3;a++){
if(a==2){
System.out.println("123");
continue;
}
}
System.out.println(a);
}
a最后值为3,这是因为在a=2时执行continue,结束了当次的循环,但并没有像break一样跳出循环,而是立马开始下一次的循环,于是a自增到3。