无效的输入流不起作用--每次我给出一个负的月份值,它就会给我返回这个异常。
代码:
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);
}
}
发布于 2017-11-09 07:42:59
或者可以将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);
}
发布于 2017-11-09 07:39:59
如输入所示,您不能创建一个大小为负值的数组。您正在正确地检查输入的month
,但在得到负值时不会终止流。在这一点上,return
ing或exit
ing应该能做到这一点。例如:
if (month < 0) {
System.out.println("Invalid Input");
return; // Here
}
https://stackoverflow.com/questions/47196361
复制相似问题