Java– ;无法以整数数组中的索引为目标
给定一个满是整数的数组,我需要打印一个不包括数字13以及紧跟在13之后的数字(如果有)的和。例如:Java– ;无法以整数数组中的索引为目标,java,arrays,Java,Arrays,给定一个满是整数的数组,我需要打印一个不包括数字13以及紧跟在13之后的数字(如果有)的和。例如: int[]nums={1,1,13,1,13}应该返回2的和 我在数组中循环以从最终和中排除13,但我不知道如何在我试图查找的索引(如果存在)之后立即将其作为目标。我一直遇到“数组索引超出边界异常” publicstaticvoidmain(字符串[]参数){ int[]nums={1,1,13,1,13}; int targetNums=0; 整数和=0; int-sumFixed=0; 对于(
int[]nums={1,1,13,1,13}
应该返回2的和
我在数组中循环以从最终和中排除13,但我不知道如何在我试图查找的索引(如果存在)之后立即将其作为目标。我一直遇到“数组索引超出边界异常”
publicstaticvoidmain(字符串[]参数){
int[]nums={1,1,13,1,13};
int targetNums=0;
整数和=0;
int-sumFixed=0;
对于(int i=0;i
您发布的代码不会抛出ArrayIndexOutOfBoundsException
。也许您尝试了其他引发该异常的方法。但它不会消除13
后面的数字
如果当前编号为13
,请将下一个编号添加到targetNums
,注意不要在检查下一个索引的长度时离开数组的末尾
if (nums[i] == 13) {
targetNums += nums[i];
// Added code
if (i < nums.length - 1)
{
targetNums += nums[i + 1];
}
// End added code
}
if(nums[i]==13){
targetNums+=nums[i];
//添加代码
如果(i
您发布的代码不会抛出ArrayIndexOutOfBoundsException
。也许您尝试了其他引发该异常的方法。但它不会消除13
后面的数字
如果当前编号为13
,请将下一个编号添加到targetNums
,注意不要在检查下一个索引的长度时离开数组的末尾
if (nums[i] == 13) {
targetNums += nums[i];
// Added code
if (i < nums.length - 1)
{
targetNums += nums[i + 1];
}
// End added code
}
if(nums[i]==13){
targetNums+=nums[i];
//添加代码
如果(i
公共静态void main(字符串[]参数){
int[]nums={1,1,13,1,13};
int-sumFixed=0;
布尔值=假;
对于(int i=0;i
公共静态void main(字符串[]参数){
int[]nums={1,1,13,1,13};
int-sumFixed=0;
布尔值=假;
对于(int i=0;i
公共静态void main(字符串[]参数){
int[]nums={1,1,13,1,13};
整数和=0;
对于(int i=0;i
公共静态void main(字符串[]参数){
int[]nums={1,1,13,1,13};
整数和=0;
对于(int i=0;i
使用迭代器的不同方法。因此,不需要处理索引或标志
Iterator<Integer> iter = Arrays.asList(nums).iterator();
while (iter.hasNext()) {
Integer num = iter.next();
if (num == 13) {
targetNums += num;
if (iter.hasNext()) {
targetNums += iter.next(); // not sure if you want to add this to targetNums, too...
}
} else {
sum += num;
}
}
Iterator iter=Arrays.asList(nums.Iterator();
while(iter.hasNext()){
整数num=iter.next();
如果(num==13){
targetNums+=num;
if(iter.hasNext()){
targetNums+=iter.next();//不确定是否也要将此添加到targetNums。。。
}
}否则{
sum+=num;
}
}
使用迭代器的不同方法。因此,不需要处理索引或标志
Iterator<Integer> iter = Arrays.asList(nums).iterator();
while (iter.hasNext()) {
Integer num = iter.next();
if (num == 13) {
targetNums += num;
if (iter.hasNext()) {
targetNums += iter.next(); // not sure if you want to add this to targetNums, too...
}
} else {
sum += num;
}
}
Iterator iter=Arrays.asList(nums.Iterator();
while(iter.hasNext()){
整数num=iter.next();
如果(num==13){
targetNums+=num;
if(iter.hasNext()){
targetNums+=iter.next();//不确定是否也要将此添加到targetNums。。。
}
}否则{
sum+=num;
}
}
但这不是产生边界外性感觉的代码,是吗?@SebastianS是的,不是。我取出了那部分代码。目前被接受的答案加起来不等于2。但这不是产生越界性感觉的代码,是吗?@SebastianS是的,不是。我去掉了那部分代码。当前接受的答案加起来不等于2。
Iterator<Integer> iter = Arrays.asList(nums).iterator();
while (iter.hasNext()) {
Integer num = iter.next();
if (num == 13) {
targetNums += num;
if (iter.hasNext()) {
targetNums += iter.next(); // not sure if you want to add this to targetNums, too...
}
} else {
sum += num;
}
}