java中的整数变负
为什么每次我输入这个值,我的元素总数都变为负值? 这是输入的第一个5 然后是123、130、53、85、100java中的整数变负,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
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
在不知道什么是
数组以及数组中包含什么的情况下,无法判断。实际上,鉴于他的类的名称,我怀疑他应该添加数组元素,而不是乘法。