JAVA中循环的递归问题

//int j=0;
private void xuhao() {
for (int j = 0; j < 5; j++) {
if (zu>0&&zu<7) {
   dosth();           
}else {
xuhao();
// break;
}
}
}


问题,当调用递归时 会出现两次循环 :递归后的循环结束 再回到递归前的循环 两次循环

原因 j是局部变量,当递归时,又定义了新的j,而原来的也还在 所以导致两次循环

解决1 : 将j变成全局变量 

解决2 :在递归后 break 

解决3:

使用continue

private void xuhao() {
int j=0;
for(;j<5;) {           
if (zu>0&&zu<7) {
   dosth(); 
    j++;      
}else {
continue;
}
}
}

套用递归那么每次出错都会从第一次开始

而用continue就会从当前出错位置开始



猜你喜欢

转载自blog.csdn.net/hx_superman/article/details/55509851