我想将数组的元素划分为数组的第一个元素,方法工作正常,但最后一个元素没有被分割。
我想我必须使用< = array.length ...,但它显然给了我一个超出绑定异常的数组。如果没有< = length,我该怎么做呢? PS:第一个元素不应该被放弃/考虑,因为它是红利。我的代码如下:
public class Ris
{
public static void main()
{
double[] testResult = {2.0, 3.6, 5.0, 2.0};
for(int element = 0; element < testResult.length; element++){
if( testResult[element] > testResult[0]){//excludes 1st element
testResult[element] = testResult[element] / testResult[0] ;// divides elements by first element 0
}
System.out.println(testResult[element]);
}
}
}
答案 0 :(得分:2)
你正在以糟糕的方式擦拭第一个元素 -
if( testResult[element] > testResult[0]){
跳过不超过第一个元素的所有内容 - 超过2.0
您可能需要测试
if( element > 0){
但你也可以跳过循环
定义中的第一个元素for(int element = 1; element < testResult.length; element++){
答案 1 :(得分:1)
if( testResult[element] > testResult[0]){//excludes 1st element
你在测试价值,而不是在这里的位置。试试这个:
public class Ris
{
public static void main()
{
double[] testResult = {2.0, 3.6, 5.0, 2.0};
for(int element = 1; element < testResult.length; element++){
testResult[element] = testResult[element] / testResult[0] ;// divides elements by first element 0
System.out.println(testResult[element]);
}
}
}
答案 2 :(得分:1)
而不是:
if( testResult[element] > testResult[0]){//excludes 1st element
您应该使用:
if(element > 0){//excludes 1st element
排除第一个元素。
或者让你的for循环从第1个位置开始(跳过第0个位置):
for(int element = 1; element < testResult.length; element++)
答案 3 :(得分:0)
要排除第一个元素,你应该从1开始计数,而不是0。改为
for (int element = 1; ....
答案 4 :(得分:0)
更一般地说,除了一个数组中的所有变量之外,这是不好的做法 或者使用相同的变量进行输入和输出。 你应该宁愿:
double denominator = 2.0;
double[] inputValues = new double[]{3.6, 5.0, 2.0};
double[] outputValues = new double[inputValues.length];
如果您这样做,for
循环现在从元素0
开始,并在(<
)inputValues.length
之前结束,这通常是for
的方式循环是建立的。