我无法编译代码,特别是在我称之为“gcd();”的主程序中我应该把什么放在括号里?谢谢。
import java.util.Scanner;
public class gcd {
public static void main(String[] args) {
gcd();
}
public static int gcd(int a, int b) {
Scanner console = new Scanner(System.in);
System.out.println("Please enter the number 1 & 2: ");
a = console.nextInt();
b = console.nextInt();
if (b == 0)
return a;
else return (gcd (b, a % b));
}
}
答案 0 :(得分:4)
您的gcd
方法需要两个整数参数,因此gcd()
将无法编译。我认为你应该在这里做的是分离IO和计算 - 可能将IO移动到主方法:
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
System.out.println("Please enter the number 1 & 2: ");
int a = console.nextInt();
int b = console.nextInt();
System.out.println(gcd(a, b)); // notice the two int arguments
}
public static int gcd(int a, int b) { // no IO, only gcd calculation
if (b == 0)
return a;
else return (gcd(b, a % b));
}
将程序分成“逻辑”组件通常很好。在上面的内容中,main
方法处理IO,gcd
处理实际计算。
答案 1 :(得分:2)
括号允许您将数据传递给方法。在这种情况下,您将两个int
传递给gdc
(a
和b
)。
定义方法时,括号之间和public static int gcd
之后的部分是告诉方法应该将哪些变量传递给它的地方。
答案 2 :(得分:2)
因为gcd方法有两个整数值,它接收(a和b),你应该通过传递两个整数值来调用该方法。
例如:gcd(3, 5);
或者您可以传递两个int类型的变量。