我们在课堂上有一个赋值,用于使用函数创建一个最大的公共分隔符(gcd)程序。我错过了我们学习如何正确使用它们的课程。我完成了实际进行除法的部分,但我不知道如何将它分成一个函数并让它工作。我想在主类和过程中输入函数。
这就是我所拥有的,当我运行它时它不起作用
package gcd.function.java.program;
import java.util.Scanner;
/**
*
* @author sarah_000
*/
public class GCDFunctionJavaProgram {
public static void main(String[] args) {
int num1;
int num2;
int div;
Scanner input = new Scanner(System.in);
System.out.print("Enter your first number: ");
num1 = input.nextInt();
System.out.print("Enter your second number: ");
num2 = input.nextInt();
System.out.printf("The GCD is %d ", div);
}
public static void GCDFunction() {
if(num1 > num2)
div = num2;
else div = num1;
while((num1 % div!= 0)||(num2 % div != 0))
{
div --;
}//end of while loop
}
}
我将非常感谢您给我的任何提示或帮助,我很新
答案 0 :(得分:1)
您声明了两个参数并修改GCDFunction
中的返回类型,如下所示:
public static int GCDFunction(int num1, int num2)
您当前正在尝试访问main方法中的变量但超出范围。
此外,您实际上从未打电话给GCDFunction
答案 1 :(得分:0)
把它想象成在数学中传递函数。 GCDFunction()必须在函数中接收数字,所以我们
public static void GCDFunction(int num1, int num2)
这也让Java知道它的类型,输入int。并且您的java变量在函数内部作用域,因此您必须在场景中创建变量的函数中打印输出。
因此,一旦您将该功能设置为在处理后接收变量和输出,您可以使用
调用main中的函数GCDFunction(num1, num2);
其中num1和num2是存储整数的变量。
稍微重新排列之后的最终结果就像这样。
import java.util.Scanner;
public class GCDFunctionJavaProgram {
public static void main(String[] args) {
int num1;
int num2;
Scanner input = new Scanner(System.in);
System.out.print("Enter your first number: ");
num1 = input.nextInt();
System.out.print("Enter your second number: ");
num2 = input.nextInt();
GCDFunction(num1, num2);
}
public static void GCDFunction(int num1, int num2) {
int div;
if(num1 > num2){
div = num2;
}
else{ div = num1;}
while((num1 % div!= 0)||(num2 % div != 0))
{
div --;
}//end of while loop
System.out.printf("The GCD is %d ", div);
}
答案 2 :(得分:0)
尝试举例说明代码应如何采用可变数量的参数。
public int gcd(Integer... numbers) {
int gcd = 1;
int miNNumber=Collections.min(Arrays.asList(numbers));
boolean isDivisible;
for(int i=2; i<=miNNumber;i++) {
isDivisible=true;
for(Integer eachNumber : numbers) {
if(eachNumber%i!=0) {
isDivisible=false;
break;
}
}
if(isDivisible) {
gcd=i;
}
}
return gcd;
}
你可以称之为
gcd(10, 200, 400);
或
gcd(10, 200, 400, 4000, 40);