//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就会从当前出错位置开始