为什么它会返回0?

时间:2018-03-28 10:52:10

标签: java

以下代码是一个递归示例,它返回给定String参数中0到9(包括9)之间的数字:

public int sayiAdediBul(String str){
  int holder = 0;

  if (sayi == 9) { //base case
    for (int a = 0; a < str.length(); a++) {
      if(Integer.parseInt(str.substring(a,a+1)) == sayi) { // im increasing sayi int variable everytime calling the method 
        holder++; 
      }
    }

    System.out.print(sayi + " :");
    return holder; // here, holder returns 0 , isnt it supposed to return how many 9 there are
  }
}

1 个答案:

答案 0 :(得分:0)

你的问题非常糟糕。我帮你一点......

 if(Integer.parseInt(str.substring(a,a+1)) == sayi) ... 

在你的情况下这是错误的。

  

变量持有者初始化为0.变量持有者不   make +1因为没有进入if语句。变量持有人是   0.变量持有者返回。