我是java初学者,大神帮忙解答我写的递归函数哪里错了?

package com.jian.action;

public class Action {
static int count = 0,i=0;
public static void digui(String num){
char[] num1 = num.toCharArray();
if(count<num1.length-1){
if (num1[i]=='a') {
count++;
}i++;
System.out.println(i);
digui(num);
}
}

public static void main(String[] args) {
    digui("aaafdtfdsg");
    System.out.println("a的个数:"+count);

}

}

你一直在执行d igui(num); num未曾改变

递归要设置返回条件…
if满足某个条件,return一下,你那个死循环了

digui函数里面加个这
if(i>=num1.length) return;
就可以了

计算a的个数为什么要用递归呢?直接遍历那个char数组就可以数出来啊,如果为了学习递归,还是换一个例子,比如汉诺塔,阶乘等

你这个是个死循环啊

for遍历数组,再判断

package com.jian.action;

public class IndexOf {
static int count = 0,i=0;
public static void digui(String num){
char[] num1 = num.toCharArray();
if(i<num1.length-1){
if (num1[i]=='a') {
count++;
}i++;
digui(num);
}
}

public static void main(String[] args) {
    digui("aaafdtfdsg");
    System.out.println("a的个数:"+count);

}

}

这样就出来了,把count改成i来判断!