Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 添加通过用户输入决定的数组元素_Java_Arrays_Input_Computer Science_Addition - Fatal编程技术网

Java 添加通过用户输入决定的数组元素

Java 添加通过用户输入决定的数组元素,java,arrays,input,computer-science,addition,Java,Arrays,Input,Computer Science,Addition,我试图将所有元素添加到一个由用户输入决定的数组中,每次运行下面构建的代码时,我都会得到一个显然不是元素总和的数字。我做错了什么 import java.util.Scanner; public class SumProduct { public static void main (String []args) { Scanner input = new Scanner (System.in); int[] array1 = new int [inp

我试图将所有元素添加到一个由用户输入决定的数组中,每次运行下面构建的代码时,我都会得到一个显然不是元素总和的数字。我做错了什么

import java.util.Scanner;
public class SumProduct
{
    public static void main (String []args)
    {
        Scanner input = new Scanner (System.in);
        int[] array1 = new int [input.nextInt()];
        input = scan.nextInt();        
        for (int i = 0; i < array1.length; i++)
        {
            array1[i] = input.nextInt();
        }
        for (int i = 0; i < array1.length; i++)
        {
            int j = array1[i];
            int k = array1[i]+1;
            int sum = j + k;
            System.out.print(sum);
        }
    }
}
import java.util.Scanner;
公共类产品
{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(System.in);
int[]array1=新int[input.nextInt()];
输入=scan.nextInt();
for(int i=0;i
如果要这样做,可能需要提示用户输入数组的大小。这行代码允许用户输入的任何内容都是数组的大小

int[] array1 = new int [input.nextInt()]; //this sets the size of the array through user input
当前上下文中不存在扫描:

input = scan.nextInt();   // this is invalid syntax as scan is not the Scanner you created    
for (int i = 0; i < array1.length; i++)
{
    array1[i] = input.nextInt();
}

您的问题出现在以下代码行中:

for (int i = 0; i < array1.length; i++)
    {
        int j = array1[i];
        int k = array1[i]+1;
        int sum = j + k;
        System.out.print(sum);
    }
然后抛出前面提到的变量“sum”,在第二个数组元素上使用相同的逻辑重新开始,然后在第三个数组元素上再次使用相同的逻辑。
i、 e.j=2,k=2+1,和=2+2+1。然后是j=3,k=3+1,和=3+3+1

您可能会看到这不是总和,并在本例中记录三位数字3、5和7。 在我更新的逻辑中,我们只是循环遍历每个元素,并将其添加到当前运行的总数中


希望这有帮助

如果sum在for循环之外,程序如何打印sum?啊,好的,现在可以了,谢谢。我没有提示用户输入值的原因是,我的工作是由计算机评分的,如果它看到这样的额外代码,它会计算错误。下一次如果我在这里问问题,我一定要把它放进去。是的,这肯定会有帮助的,谢谢。不过,还有一个问题,是否可以使用相同的代码put将+符号替换为*符号,以将元素相乘而不是相加?是的,但您希望将“sum”初始化为1而不是0。还有一个简单的语法技巧我在回答中省略了:
sum+=array[I]
和说
sum=sum+array[I]
它也适用于乘法:
sum*=array[I]
啊,好吧,我为什么现在得到了零,哈哈。非常感谢,这很有帮助。
int sum = 0;
for (int i = 0; i < array1.length; i++)
{
    sum += array1[i];
    System.out.print(sum);  // this will print out sum after each addition
}
System.out.print(sum);  // this will print out sum after the entire array is summed
input.close();
for (int i = 0; i < array1.length; i++)
    {
        int j = array1[i];
        int k = array1[i]+1;
        int sum = j + k;
        System.out.print(sum);
    }
int sum = 0;
for (int i = 0; i < array1.length; i++)
    {
        sum = sum + array1[i];
    }
System.out.print(sum);
j = array1[0]     //(j == 1)
k = array1[0] + 1 //(k == 1 + 1 == 2)
sum = j + k       //(sum == 1 + 2 == 3)