【发布时间】:2015-02-10 21:53:49
【问题描述】:
我一直在编写一个程序,需要输入 1 到 4 之间的数字。为了防止输入超出范围的数字。然而,变量不断传递给另一段代码并导致程序失败。 这是 do while 循环:
do
{
System.out.println("Please enter a quarter number 1-4: ");
quarter = scanIn.nextInt();
}while((quarter > 5 ) && (quarter < 0));
这是运行变量的代码:
for (int n = ((quarter * 3)-3); n < (quarter*3); n++)
{
String sum = fmt.format(monthSales[n]);
System.out.printf("Sales for month %d: %s\n", n+1, sum);
}
这是输入错误时返回的错误:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -6
at lab4.Lab4.main(Lab4.java:57)
我尝试将“季度”的范围限制在循环内,但随后 while 子句不起作用。如何防止变量在循环关闭之前传递? p.s.这个问题是作业的一部分,因此我必须使用 do while 循环。
【问题讨论】:
-
首先,即使您说希望它是 1-4,您也允许 QuarterNum 为 0 或 5,其次,如果用户键入其他任何内容,您的 do-while 循环将变为无限循环比一个数字。有关原因,请参阅几乎无限数量的关于 Scanner 和 nextInt 的先前问题。还有,
quarterNum和quarter是什么关系? -
for循环在哪里使用?什么是季度?
-
程序是计算一个财政季度的总和。 QuarterNum 是我放入的一个新变量,试图阻止该变量通过(不成功,将编辑代码)。只要输入不是 1-4,我将如何设置它继续?