首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >线程"main“java.lang.NegativeArraySizeException中的Main.main异常

线程"main“java.lang.NegativeArraySizeException中的Main.main异常
EN

Stack Overflow用户
提问于 2017-11-09 07:36:45
回答 2查看 743关注 0票数 1

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

代码:

代码语言:javascript
运行
复制
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);
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-09 07:42:59

或者可以将else语句与if语句结合使用。

代码语言:javascript
运行
复制
    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");
    }else{
    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);
    }
票数 0
EN

Stack Overflow用户

发布于 2017-11-09 07:39:59

如输入所示,您不能创建一个大小为负值的数组。您正在正确地检查输入的month,但在得到负值时不会终止流。在这一点上,returning或exiting应该能做到这一点。例如:

代码语言:javascript
运行
复制
if (month < 0) {
    System.out.println("Invalid Input");
    return; // Here
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47196361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档