Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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 - Fatal编程技术网

java中的整数变负

java中的整数变负,java,Java,为什么每次我输入这个值,我的元素总数都变为负值? 这是输入的第一个5 然后是123、130、53、85、100 import java.io.*; public class Add{ public static void main(String[] args)throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int el

为什么每次我输入这个值,我的元素总数都变为负值? 这是输入的第一个5 然后是123、130、53、85、100

import java.io.*;
public class Add{
    public static void main(String[] args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int element = 1;
        System.out.print("what dimension is your array?: ");
        int dimen = Integer.parseInt (br.readLine());
        if(dimen>10){
            System.out.println("your dimension is too large please try again");
            System.exit(1);
        }
        int[] Array = new int[dimen];
        for(int a = 0; a<dimen; a++){
            System.out.print("what is the value of your dimension?: ");
            int dimen1 = Integer.parseInt (br.readLine());
            Array[a] = dimen1;
            element = element*Array[a];
        }
        System.out.println("The total Value of the element is "+element);
   }
}
import java.io.*;
公共类添加{
公共静态void main(字符串[]args)引发IOException{
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
int元素=1;
System.out.print(“数组的维数是多少?”:”;
int dimen=Integer.parseInt(br.readLine());
如果(尺寸>10){
System.out.println(“您的维度太大,请重试”);
系统出口(1);
}
int[]数组=新的int[dimen];

对于(int a=0;a在不知道数组是什么的情况下是不可能确定的,但它可能是由您输入的最后5个数字组合而成的

如果是这样的话,那么您就遇到了整数溢出。
int
值在开始环绕之前被限制在20亿左右,128*130*53*85*100超过70亿


使用
long[]
long[]
数组,而不是
int[]
Integer[]

每次将
array
的值乘以
int element=1;
得到的值

123
15990
847470
72034950
7203495000
但是可以存储的最大值
int

2147483647 
这导致
-1386439592

为了解决这个问题,考虑将<代码>元素< /代码>改为可以包含更大值的东西,如

  • long
    最多可包含数字9223372036854775807
  • 或者如果是更大的数字
    biginger

  • 在不知道什么是
    数组以及数组中包含什么的情况下,无法判断。实际上,鉴于他的类的名称,我怀疑他应该添加数组元素,而不是乘法。