Java 填写一些输入,并将默认值设置为其他输入

Java 填写一些输入,并将默认值设置为其他输入,java,input,enums,switch-statement,case,Java,Input,Enums,Switch Statement,Case,我有三个不同枚举区域的输入选项,用户可以输入不同的捐赠。但假设用户只想向其中一个或两个区域捐款,那么我希望其他区域的默认值自动设置为0 我正试图用某种开关盒方法来解决这个问题,但我被卡住了。这是我目前的代码,有人知道如何修复它吗 public enum Areas { Schools, Healthcare, Environment } private String socialnr; private Areas area; private float percentage = (float)

我有三个不同枚举区域的输入选项,用户可以输入不同的捐赠。但假设用户只想向其中一个或两个区域捐款,那么我希望其他区域的默认值自动设置为0

我正试图用某种开关盒方法来解决这个问题,但我被卡住了。这是我目前的代码,有人知道如何修复它吗

public enum Areas { Schools, Healthcare, Environment }

private String socialnr;
private Areas area;
private float percentage = (float) 0.0; //default value for an area if not chosen

//Method to handle the choices:
public synchronized void areaChoice(Areas which) {

switch (which) {
    case Schools: {
        setPercentage(sc.nextFloat());
        break;
    }
    case Healthcare: {
        setPercentage(sc.nextFloat());
        break;
    }
    case Environment: {
        setPercentage(sc.nextFloat());
        break;
    }
}
}
期望的控制台结果:

“键入“学校”向学校捐赠,“医疗保健”用于医疗保健,“环境”用于环境捐赠…”

投入:学校

金额:10

要继续捐赠,请键入上述命令之一,或键入“退出”退出

输入:退出

[输出]:


学校:10.0,医疗:0.0,环境:0.0在这种方法中,您使用的是
setPercentage(sc.nextFloat())在所有三种情况下,因此实际上不需要switch语句。
您可以使用数组来存储所有三个百分比值,并通过枚举类型进行迭代,因为枚举只是给定一些名称的一组整数(您可以通过
区域.values()
数组进行迭代)。 您还可以创建一个方法来打印所有三个值,但如果给定的区域是非零的(为此,您可以使用switch语句)。此选项不需要阵列,因此可能更适合您的想法。 希望有帮助!
另外,您不需要将float初始化为0,它是用Java自动完成的

我们需要在这里看到更多的代码。目前尚不清楚您的
setPercentage()
方法在做什么,也不清楚您在何处/如何存储用户迄今为止输入的信息。