对于inputGetter()的for循环中返回的内容存在问题,新手编码器不知道还有去哪里。当我输入一个double时,它返回错误的值或根本不返回任何内容。感谢您的时间。非常感谢任何帮助(这是为了我自己的利益所以不需要急于回答,这不是为了学校。)
HasFoo
答案 0 :(得分:0)
您可以尝试以下代码。基本上,我将inputGetter移动到全局范围中,并将其从函数inputGet()的范围中删除。这是因为对于一个java程序实例,你只需要一个Scanner类实例,但是之前你创建了两个它们。
import java.util.Scanner;
public class AdditionExample {
static Scanner inputGet;
public static void main(String[] args) {
inputGet = new Scanner(System.in);
double userInput1;
double userInput2;
System.out.println("Please enter a double-type number. Whole integers will not be accepted.");
userInput1 = inputGetter();
System.out.println("Please enter another double-type number. Whole integers will not be accepted.");
userInput2 = inputGetter();
additionExample(userInput1, userInput2);
inputGet.close();
}
public static double additionExample(double u, double i) {
double o = u + i;
System.out.println(o);
return o;
}
public static double inputGetter() {
boolean goodAnswer = true;
double userInput = 0.0;
while (goodAnswer == true) {
if (inputGet.hasNextDouble()) {
userInput = inputGet.nextDouble();
goodAnswer = false;
}
else {
System.out.println("You done did it wrong.");
inputGet.next();
break;
}
}
return userInput;
}
}
注意:根据您的逻辑,您无法抵抗整数类型被接受,因为每个整数也是一个双精度型。因此,inputGet.hasNextDouble()
的任何整数都将返回true。你需要提出比这更诙谐的东西:)