无法在方法中使用扫描仪

时间:2016-03-25 15:51:56

标签: java

我有一个代码,我希望在读取用户输入的方法上调用三个变量,并确定它是否为整数(如果不是重新提示用户),然后将输入返回给变量。我尝试编译时遇到以下编译器错误:

  

错误:方法类型中的方法getInt(int)不适用于参数(java.util.Scanner)

这是我的代码:

def my_sum(*args):
    return sum(args)

def identity(value):
    return value

e0, e1, e2, f0, g0, g1 = [Node([], identity) for _ in xrange(6)]
c0 = Node([e0, e1, e2], my_sum)
d0 = Node([f0], my_sum)
d1 = Node([g0, g1], my_sum)
b0 = Node([c0], my_sum)
b1 = Node([d0, d1], my_sum)
a0 = Node([b0, b1], my_sum)

arg_tests = [
    (1, 1, 1, 1, 1, 1),
    (1, 2, 3, 4, 5, 6)
]
for args in arg_tests:
    assert a0(*args) == sum(args)
print('Pass!')

您可以给予任何帮助,我们将不胜感激!

2 个答案:

答案 0 :(得分:1)

我建议你阅读“使用Scanner只接受有效的int作为输入” https://stackoverflow.com/a/2913026/5980046

答案 1 :(得分:0)

您的方法getInt(int input)期望一个整数作为参数。

但是在您的代码中,您提供的是Scanner对象而不是int:

a = getInt(scan);  
b = getInt(scan);  
c = getInt(scan);

这是你可能想要的:

a = getInt(scan.nextInt());  
b = getInt(scan.nextInt());  
c = getInt(scan.nextInt());