无效的输入流不起作用 - 每次我给出一个负月值,它会让我回到这个例外。
代码:
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);
}
}
答案 0 :(得分:2)
如输入所示,您无法创建负数大小的数组。您正确地检查输入的month
,但是当您获得负值时,您不会终止流量。那时return
或exit
应该可以解决问题。 E.g:
if (month < 0) {
System.out.println("Invalid Input");
return; // Here
}
答案 1 :(得分:-1)
或者您可以将else
语句与if
语句一起使用。
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);
}