【问题标题】:Storing an Element in Array (Java) until I type something to stop it在数组(Java)中存储一个元素,直到我输入一些东西来阻止它
【发布时间】:2021-08-04 07:36:23
【问题描述】:

我正在用 Java 做这个项目,我正在尝试进行一些计算并将其添加到一个数组中,这样当我输入“-1”时我可以输出该数组中的所有元素,但它甚至会继续调用该函数当我输入'-1' (我开始学习Java了)

public class main {
    
    public static double computeIncome(double SalesAmount) {
        double num = SalesAmount;
        double baseSalary = 5000;
        double numTotal = baseSalary;
        
        if(num < 5000.01) {
            numTotal += num * 0.08;
        }
        else {
            if(num < 10000.01) {
                numTotal += ((num - 5000) * 0.10);
                numTotal += baseSalary * 0.08;
            }
            else {
                numTotal += ((num - 10000) * 0.12);
                numTotal += baseSalary * 0.10;
                numTotal += baseSalary * 0.08;
                
            }
        }
        return numTotal;
    }
        
        
    
    static void cd(int DataCount, double[] DataBase) {
        int dataCount = 0;
        double[] db = DataBase;
        Scanner reader = new Scanner(System.in);
        
        double x = computeIncome(reader.nextDouble());
        
        
        if(x != -1) { 
            db[dataCount] = x;
            dataCount += 1;
            cd(dataCount, db);
        }
        else {
            for (int i = 0; i < db.length; i++) {  
                    System.out.println(db[i] + " ");  
               }  
        }
        reader.close();
    }
    
    public static void main(String[] args) {
        int dataCount = 0;
        double[] db = new double[20];
        System.out.println("Input the sales: (type '-1' to finish )");
        cd(dataCount, db);
            
    }
}

所以当我输入 -1 时它只是继续调用一个函数,即使我已经实现了一个 else 函数 我知道这应该是一个简单的代码和简单的代码,但我觉得这件作品让我的生活变得非常艰难

【问题讨论】:

    标签: java arrays input output


    【解决方案1】:

    我对您的代码进行了一些更改 - 修复了一些逻辑并根据 Java 标准重命名了参数。我相信现在它可以达到您的预期:

        public class main {
    
        public static double computeIncome(double salesAmount) {
            double num = salesAmount;
            double baseSalary = 5000;
            double numTotal = baseSalary;
    
            if(num < 5000.01) {
                numTotal += num * 0.08;
            }
            else {
                if(num < 10000.01) {
                    numTotal += ((num - 5000) * 0.10);
                    numTotal += baseSalary * 0.08;
                }
                else {
                    numTotal += ((num - 10000) * 0.12);
                    numTotal += baseSalary * 0.10;
                    numTotal += baseSalary * 0.08;
    
                }
            }
            return numTotal;
        }
    
        static void cd(int dataCount, double[] dataBase) {
            int currentDataCount = dataCount;
            double[] db = dataBase;
            Scanner reader = new Scanner(System.in);
    
            double valueFromInput = reader.nextDouble();
            if (valueFromInput == -1) {
                for (int i = 0; i < db.length; i++) {
                    System.out.println(db[i] + " ");
                }
            }
    
            double x = computeIncome(valueFromInput);
            db[currentDataCount] = x;
            currentDataCount += 1;
            cd(currentDataCount, db);
    
            reader.close();
        }
    
        public static void main(String[] args) {
            int dataCount = 0;
            double[] db = new double[20];
            System.out.println("Input the sales: (type '-1' to finish )");
            cd(dataCount, db);
        }
    }
    

    *class 也应该重命名为 Main(Java 类名应该以大写字母开头)。如果您愿意,我可以展示如何进一步改进此代码

    【讨论】:

    • 是的,这将是我想做的正确解决方案......关于如何在数组上创建执行所需的元素数量有什么想法吗?例如,如果我只使用 4 个元素,输入 -1 停止它也会输入我声明的数组的数量
    • 你可以用ArrayList替换双数组,它比数组方便多了。您可以使用 ArrayListmyArray = new ArrayList(); 对其进行初始化然后使用 add() 方法向其中添加元素
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    • 2017-10-14
    • 2021-11-06
    相关资源
    最近更新 更多