所以我有这段代码,我需要它打开一个文件,并扫描文件中的两个整数,然后我需要它来存储这两个数字。第一个数字的数字限制在1到10之间,第二个数字的数字限制在1到39之间。我有一个valueCounter来确保正确的数字存储在正确的变量中。由于某些原因,代码总是返回 “您的初始Fib超出范围,在1-10之间的进球号” 如果第一个数字大于10或小于1,这将是适当的,但无论我如何更改第一个数字,代码返回相同的行。唯一不会返回该行的是当我将第二个数字更改为1到10之间。所以我可以得出结论,代码跳过第一个数字,但我无法弄清楚为什么。任何智力更高的人都可以提供帮助?从文件读取不会读取第一个值Java
private static File inFile = null;
private static PrintWriter outFile = null;
private static int startValue;
private static int lengthValue;
public static void main(String[] args) throws IOException
{
inFile = new File(inFileName);
Scanner in = new Scanner (inFile);
outFile = new PrintWriter (outFileName);
int valueCounter = 1;
while (in.hasNextInt())
{
int value = in.nextInt();
if (value <= 39 && value >= 1 && valueCounter == 2)
{
lengthValue = value;
valueCounter ++;
}
if (value > 39 || value < 1 && valueCounter == 2)
{
System.out.println("You are asking for too many Fib, eneter # between 1-39");
in.close();
System.exit(1);
}
if (value <= 10 && value >= 1 && valueCounter == 1)
{
startValue = value;
valueCounter ++;
}
if (value > 10 || value < 1 && valueCounter == 1)
{
System.out.println("Your Initial Fib is out of range, eneter # between 1-10");
in.close();
System.exit(1);
}
}
}
你是否尝试了逐行调试来查看实际数字是什么?或者只是为了这件事打印出来 –
@RichardTingle是的,为了简单起见,我确定排除我知道的代码不是问题,我一直在逐行调试大概一个小时,试图弄清楚这一点。 –
这似乎是一个可怕的地方使用循环,**为什么**你使用循环? –