此代码中的错误是什么?
public static int buyuk(String a,int w,int q) {
for (int j = 65; j <=90 ; j++) {
if(a.charAt(w)==j)
return buyuk(a,w+1,q+1);
else
return buyuk(a,w+1,q);
}
return q;
}
public static void main(String[] args) {
System.out.println(buyuk("AlpERen",0,0));
}
答案 0 :(得分:1)
你的代码中有一些错误。例如:for循环永远不会运行!它将始终在第一次迭代中返回!
您正在尝试检查字符是否在65到90之间(大写字母),您应该使用比较来执行此操作:
public static int buyuk(String a,int w,int q){
if (w == a.length()) // Stop the recursion when the end of the String is reached
return q;
char ch = a.charAt(w);
if (65 <= ch && ch <= 90) // Check if the character is an uppercase letter
return buyuk(a, w+1, q+1);
else
return buyuk(a, w+1, q);
}