我一直在编写一个程序,需要输入一个介于1和4之间的数字。为了防止输入范围之外的数字。但是变量不断传递给另一段代码并导致程序失败。 这是do while循环:如何在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)
我试图将“quarter”的范围限制在循环内,但while子句不起作用。如何防止变量在循环关闭之前传递? p.s.这个问题是一个任务的一部分,因此我必须使用do while循环。
首先,您允许quarterNum为0或5,即使您说您希望它为1-4,其次,如果用户输入数字以外的任何内容,您的do-while循环将变为无限循环。查看关于Scanner和nextInt的前几个问题几乎无限的原因。另外,'quarterNum'和'quarter'之间的关系是什么? – 2015-02-10 21:58:06
for循环在哪里使用?季度是什么? – Kode 2015-02-10 22:00:40
该计划是计算一个财政季度的总和。 quarterNum是我试图试图阻止变量传递的一个新变量(unsuccsessfull,将编辑代码)。只要输入不是1-4,我会如何设置它继续? – 2015-02-10 22:10:12