Java 填写一些输入,并将默认值设置为其他输入
我有三个不同枚举区域的输入选项,用户可以输入不同的捐赠。但假设用户只想向其中一个或两个区域捐款,那么我希望其他区域的默认值自动设置为0 我正试图用某种开关盒方法来解决这个问题,但我被卡住了。这是我目前的代码,有人知道如何修复它吗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)
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()
方法在做什么,也不清楚您在何处/如何存储用户迄今为止输入的信息。