如何使用涉及整数的函数?

时间:2015-11-30 19:35:06

标签: java function methods

我们在课堂上有一个赋值,用于使用函数创建一个最大的公共分隔符(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

   }    
}

我将非常感谢您给我的任何提示或帮助,我很新

3 个答案:

答案 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);