package game1;
import java.util.Scanner;
public class toothpicks {
private int number;
public int HowMany()
{
do
{
System.out.print("Enter the No. of ToothPicks = ");
Scanner input =new Scanner(System.in);
number = input.nextInt();
if(number<4)
{
System.out.print("ToothPicks Should be greater than 3\n");
}
}while(number<4);
return number;
}
}
在哪里可以关闭程序中的input
扫描仪?如果我在程序结束时在返回语句input can not be resolved
之前关闭它,但是如果我在循环中关闭它然后我无法实现我尝试使用此{{1 }} 方法?该怎么办 ?任何帮助将不胜感激
答案 0 :(得分:2)
您正在每个循环上创建Scanner
的新实例。但是,你不需要这样做,所以你可以做到
Scanner input = new Scanner(System.in);
// do while loop goes here
然后在return
声明之前关闭扫描仪。
答案 1 :(得分:1)
您可以在循环中声明Scanner
(每次循环进行迭代时,看看您正在创建Scanner
的新实例)
package game1;
import java.util.Scanner;
public class toothpicks {
private int number;
public int HowMany()
{
Scanner input =new Scanner(System.in);
do
{
System.out.print("Enter the No. of ToothPicks = ");
number = input.nextInt();
if(number<4)
{
System.out.print("ToothPicks Should be greater than 3\n");
}
}while(number<4);
input.close();
return number;
}
}
然后在return
语句之前关闭它。
我希望它会对你有所帮助!
答案 2 :(得分:1)
在input
循环之前定义并初始化number
和do
,并在do
循环后立即关闭它。