我在将java程序拆分为同一个类中的不同方法时遇到了一个问题,我能就如何处理这个问题提出一些建议吗?

yzxexxkh  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(354)

我的任务是拆分我的程序,它允许用户输入一个数字数组,在1到10之间的奇数之后检查奇数是否是数组中5个数字的一个因子。我不断尝试不同的方法,但似乎都不管用。有人能帮我吗?或者寄一份我该怎么分类的样品?程序如下:

import java.util.Scanner;
public class CheckboxExample{  
    public static void main(String args[])  {  
        CheckBox c = new CheckBox();
        new CheckboxExample();  // links to checkbox class
        Scanner s = new Scanner(System.in);
        int array[] = new int[10]; 
        System.out.println ("Please enter 10 random numbers"); // prompts the user to enter 10 numbers
        int num; // declares variable num
        try{
            for (int i = 0; i < 10; i++) {
                array[i] = s.nextInt(); // array declaration
            }
        }catch (Exception e){
            System.out.println ("You have an error");
        }

        System.out.println ("Please enter an odd number between 1 and 10");

        try{
            num = s.nextInt ();
            if (num % 2 == 0){
                do{
                    System.out.println ("\nYour number is even, enter an odd one");
                    num = s.nextInt ();
                }while (num % 2 == 0);
            } 

            if (num < 0 | num > 10){
                do{  
                    System.out.println ("Your number is outside of the range, try again");
                    num = s.nextInt ();  
                }while (num < 0 | num > 10);
            } 

            for (int i = 0; i < 5 ; i++){
                if (array[i] % num  == 0) {
                    System.out.println("Your number is a factor of " + array[i] );
                } 
            }
        }catch (Exception e){
            System.out.println ("error");
        }
    }  
}
6qqygrtg

6qqygrtg1#

理想情况下,方法应该负责一个任务。在您的例子中,您应该考虑代码尝试执行的不同操作,并在某种意义上组织它们,即您调用的每个方法都执行您尝试执行的操作列表中的一项操作。例如:据我所知,您的代码执行以下操作:
读取10个值的数组
读奇数
验证数字是否为奇数
验证数字是否在范围内
计算数字是否是数组中10个数字之一的因子
现在一种可能的方法是将代码分成5个方法,这些方法正好可以完成这些任务。
首先调用读取10个数字的方法。然后调用方法读取奇数。3.和4。实际上是读取数字的一部分,因为您需要重试无效的输入,所以您可以编写输入奇数的方法,使其使用验证输入的方法。最后,当您拥有所有有效的输入时,您将调用产生结果的方法(即,如果数字是列表中数字的一个因子)。
代码的一般异常值可能如下所示:

public class CheckboxExample {  
    public static void main(String args[])  {
        CheckBox c = new CheckBox();
        new CheckboxExample();  // links to checkbox class
        Scanner s = new Scanner(System.in);
        int array[] = readInputArray();
        int number = readOddValue();
        calculateFactors(array, number);
    }

    private int[] readInputArray() {...}

    private int readOddValue() {...}

    private void calculateFactors(int[] array, int number) {...}

    //additional methods used by readOddValue which verify if the value is actually odd

}

请注意,这只是将代码拆分为方法的一种方法,设计和实现每个方法有几种方法。

相关问题