我是新來的java來自c + +和C.當我通過簡單的arr = 4給出正確的輸入,但是當我通過arr [i] = 4它給出錯誤。有人能告訴我並糾正我嗎?傳遞數組時發生錯誤
code:
package GA;
import java.util.Scanner;
public class ReversedBinary {
public static void main(String[] args) {
int number = 0;
int i=1;
int[]arr = new int[]{4};
// arr[i]4;
// number=arr[i];
if (number <0)
System.out.println("Error: Not a positive integer");
else {
System.out.print("Convert to binary is:");
System.out.print(binaryform(arr[i])); // error occuring
}
}
private static Object binaryform(int arr) {
int remainder;
if (arr <=1) {
System.out.print(arr);
return null; // KICK OUT OF THE RECURSION
}
remainder= arr %2;
binaryform(arr >>1);
System.out.print(remainder);
return "";
}
}
錯誤:
Convert to binary is:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at GA.ReversedBinary.main(ReversedBinary.java:18)
像C,Java數組的索引從0 =>'INT I = 0;' – assylias
無關你的實際問題,但'binaryForm'沒有理由返回'Object',所以它的返回類型應該是'void',或者'String'(如果你想返回二進制而不是打印)。 – kviiri