Java 我在';启动';在底部的(开始和结束)

Java 我在';启动';在底部的(开始和结束),java,Java,我在底部的(开始+结束)中的“开始”上遇到错误。解决此问题的唯一方法是在“Scanner inputFn=new Scanner(System.in);”下面添加“int start=inputFn.nextInt();”但这一切都搞砸了。我以前能修好它,但我忘了是怎么修好的。请帮忙 public static void main(String eth[]){ System.out.println("Please Enter An Integer:"); Scanner inputFn = n

我在底部的(开始+结束)中的“开始”上遇到错误。解决此问题的唯一方法是在“Scanner inputFn=new Scanner(System.in);”下面添加“int start=inputFn.nextInt();”但这一切都搞砸了。我以前能修好它,但我忘了是怎么修好的。请帮忙

public static void main(String eth[]){

System.out.println("Please Enter An Integer:");
Scanner inputFn = new Scanner(System.in);


if (inputFn.hasNextInt()){
}else{
int start = inputFn.nextInt();
System.out.print("Play By The Rules And Enter An Integer");

}

System.out.println("Please Enter An Integer:");
Scanner inputSn = new Scanner(System.in);
int finish = inputSn.nextInt();

int answer = (start + finish);
System.out.println(answer);


}
}
如果

有点落后。只有在没有整数时,才读取整数。在if块中定义start变量,这就是为什么会出现错误

更像

int start = 0;
if (inputFn.hasNextInt()){
  start = inputFn.nextInt();
}else{
  System.out.print("Play By The Rules And Enter An Integer");
}

看起来会更好。

这确实有帮助。但它仍然无法在最短的时间内摆脱启动错误bottom@EthanCotler,您是否将int-start定义放在if块之外,如果将“int-start=inputFn.nextInt();”放在“Scanner-inputFn=new Scanner(System.in)”下面,具体的错误是什么;“它解决了问题,只是在控制台中为用户输入添加了一行额外的代码,我不希望这样。您需要在if之前执行
int start;
,然后在if
start=inputFn.nextInt();
,如我编写的示例代码所示。我在答案中添加了=0,否则会得到一个“未初始化的变量”“错误。请具体说明。您得到了什么错误?您需要在else之外声明变量(
start
,在您的情况下),因为它只在声明的范围内可见。或者,您可以将所有第二次读取放入else。您正在条件范围内声明
start
变量,并尝试在方法范围内调用它。这是不可能的。对代码进行更好的缩进可以更好地表明这是您遇到的问题。学会以一种理智的方式格式化代码,您只能期望您在向帮助您的人提问时付出相同的努力,对吧,这并不多。。。
int start = 0;
if (inputFn.hasNextInt()){
  start = inputFn.nextInt();
}else{
  System.out.print("Play By The Rules And Enter An Integer");
}