我最近一直在学习Java,今天我遇到了一个问题,我无法找到可行的解决方案。 我的代码如下所示:
public class testTable {
public static void main(String[] args) {
int bob[] = {456,2,3,4,5,6};
for(int j : bob) {
System.out.println(bob[j]);
}
}
}
代码始终返回错误:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 456
at com.Practice.thenewboston.Arrays.Table.testTable.main(testTable.java:9)
任何帮助都会受到赞赏,并且很好地解释了为什么错误发生会很好。 谢谢!
答案 0 :(得分:0)
通过提供要从中获取值的位置的索引来引用数组。而这些指数从零开始。因此,要从数组中获取第一个值,您将执行bob[0]
。 for-loop
正在做的是自动遍历数组的每个元素,并逐个将值放入j
。因此,要打印出值,您只需执行System.out.println(j);
答案 1 :(得分:0)
(function() {
'use strict';
var appControllers = angular.module('appControllers', []);
appControllers.controller('ProjectsController', ['$scope', '$http',
function ($scope, $http) {
$http.get('app/json/projects.json').success(function(data){
$scope.projects = data;
});
$scope.orderProp = '-year';
}]);
appControllers.controller('GalleryController', ['$scope', '$routeParams',
function($scope, $routeParams) {
$scope.projectId = $routeParams.projectId;
}]);
})();
是您正在使用的for循环类型(Enhanced for loop)所需要的。
System.out.println(j);
或
for(int j : bob) {
System.out.println(j);
}
答案 2 :(得分:0)
你的循环应该是这样的
for(int j : bob) {
System.out.println(j);
}
这适用于集合
答案 3 :(得分:-1)
试试这个...... 数组的第一个元素是456,而
array length
是6
,因此,您尝试访问array
中存在的索引。因此,它会导致IndexOutOfBoundException ..
public class testTable {
public static void main(String[] args) {
int bob[] = {456,2,3,4,5,6};
for(int j : bob) { //this is foreach not for loop be aware.
System.out.println(j);
}
}
}