java - Main.main 线程 "main"java.lang.NegativeArraySizeException 中出现异常

标签 java arrays for-loop

无效的输入流不起作用 - 每次我给出负的月份值时,它都会返回此异常。

代码:

import java.util.Scanner;
public class Main {

    public static void main(String[] args) {


        Scanner input= new Scanner(System.in);
        System.out.println("Enter the number of months :");
        int month = input.nextInt();
        if(month<0)
        {
                System.out.println("Invalid Input");
        }
        int sum = 0;
        int a[] = new int[month];
        System.out.println("Enter the profit of each month in shipment");
        for (int i=0; i<month; i++)
        {
            a[i] = input.nextInt();
            sum = sum+a[i];
        }
        System.out.println("Total profit : "+sum);
    }
}

最佳答案

正如输入所示,您无法创建负大小的数组。您正确检查了输入的月份,但是当您得到负值时,您不会终止流程。此时返回或退出应该可以解决问题。例如:

if (month < 0) {
    System.out.println("Invalid Input");
    return; // Here
}

关于java - Main.main 线程 "main"java.lang.NegativeArraySizeException 中出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47196361/

相关文章:

Java NIO 存储路径列表

java - 在应用程序的整个 Activity 中管理持久视觉数据(事件驱动的按钮和 ImageView )

java - hibernate-redis 是否支持由不同的 hibernate 实例共享的二级缓存

ruby-on-rails - 使用每个 block 打印所有僵尸的名称

java - 出于日志目的捕获 RuntimeException 是一种不好的做法吗?

arrays - 对元胞数组的每个元素执行算术运算的最快方法是什么?

javascript - 将二维数组转换为一维数组,交替使用它们的值

arrays - 通过 PowerShell 中的 Foreach 循环动态标点和语法更正字符串

javascript - JSPerf、For 循环与 While 循环

javascript - for 循环在解析云代码上的奇怪且令人惊讶的行为。