方法如下:
java跳出循环是使用break语句的,break默认跳出当前循环。当使用双层循环时,可通过label从内层循环跳出。
有关代码示例如下:
跳出一层:
for(int i=0i<10i++){
for(int a=0a<10a++){
break//跳出a循环,回到i循环
跳出两层:
labe:for(int i=0i<10i++){
for(int a=0a<10a++){
break labe//跳出整个循环
众所周知,在Java中,如果想跳出for循环,一般情况下有两种方法:break和continue。
break是跳出当前for循环,如下面代码所示:
public class RecTest {
/**
* @param args
*/
public static void main(String[] args) {
for(int i=0 i< 10 i++){
if(i==5){
break
}
System.out.print(i+" ")
}
}
}
输出:0 1 2 3 4
也就是说,break会跳出(终止)当前循环。continue是跳出当前循环,开始下一循环,如下所示:
public class RecTest {/**
* @param args
*/
public static void main(String[] args) {
for (int i = 0 i < 10 i++) {
if (i == 5) {
continue
}
System.out.print(i+" ")
}
}
}
输出:0 1 2 3 4 6 7 8 9
以上两种方法没有办法跳出多层循环,如果需要从多层循环跳出,则需要使用标签,定义一个标签label,
然后在需要跳出的地方,用break
label就行了,代码如下:
public class RecTest {/**
* @param args
*/
public static void main(String[] args) {
loop: for (int i = 0 i < 10 i++) {
for (int j = 0 j < 10 j++) {
for (int k = 0 k < 10 k++) {
for (int h = 0 h < 10 h++) {
if (h == 6) {
break loop
}
System.out.print(h)
}
}
}
}
System.out.println("\nI'm here!")
}
}
输出:
012345
I'm here!
1、首先,这里不是循环,所以不存在跳出循环的问题。2、代码逻辑有很多方法可以处理,如果不想抛出异常的话,最好是给一个特定值。
我给你改一下:
class Person{
private int age
private static final Integer DEFAULT_ERROR_AGE= -1//这里定义一个特定的错误值
public Person(int a){
this.setAge(a)
}
public void setAge(int a){
if(a>0&&a<150){
age = a
}else{
age = DEFAULT_ERROR_AGE
}
}
public int getAge(){
return age
}
public void print(){
//用条件表达式
System.out.println(age==DEFAULT_ERROR_AGE?"输入参数错误":"年龄:" + this.getAge())
}
}
public class Hello{
public static void main(String args[]){
new Person(300).print()
}
}