任何人都可以帮助我吗?我已经使用Java编译并成功运行了一个程序,该程序从" inputdialog"中获取用户输入。框,并在控制台中显示此信息以及简单的数学公式。我似乎无法克服的问题是,当输入数据时,用户可以选择输入相同数据类型的另一组,但我需要控制台将其注册为第二个输入。这是我目前对代码部分以及如何使用数组进行此工作的想法,但我已被告知将数据保存/存储为对象可能是更好的选择?
private void enterCar()
{
String carInfo;
int carHours;
int i = 0;
int[] carNumb = new int[20];
double fee = Double.parseDouble("7.50");
double sum = 0;
final int MAX = 12;
{
carInfo = JOptionPane.showInputDialog("Please enter the license plate of the car");
carHours = Integer.parseInt(JOptionPane.showInputDialog("Enter the number of hours the car was parked (1-12):"));
System.out.printf("\n");
System.out.printf("Details for car "+carNumb+" entered:\n");
System.out.printf("License plate Hours Fee:\n");
System.out.printf(""+carInfo+" "+carHours+" $");
if (carHours == 1)
System.out.printf("%3.2f",fee*(carHours));
else if (carNum == 2)
System.out.printf("%3.2f",fee+4.50);
else if (carHours >= 3)
System.out.printf("%3.2f",3+(carHours*4.50));
System.out.printf("\n\n");
}
}
当我编译并运行控制台时,我得到了行"汽车详情[I @ 6659c656输入"。这条线确实改变为" [I @ 7665c575"下次我激活选项时,我可以假设我可能需要以不同的方式为数字赋值?
我尝试过在提供的代码中显示的选项以及尝试使用(1,2,3,ect)激活列表,但这也只是输出随机的数字和字母行。
我想简化我的问题。我需要存储来自' InputDialog'框并存储它以便以后在控制台中访问。
答案 0 :(得分:0)
我需要存储来自
InputDialog
框的20个单独输入并存储它以便以后在控制台中访问。
使用for
等循环。
然后将该信息存储为"输入汽车1的详细信息:"然后显示信息。
正如我之前所说,你应该使用数组的索引而不是数组。因为数组是从零开始的索引,所以我使用carNumb[i] + 1
打印出订单。
然后计算费用并存储到carNumb
数组。
请注意,您的fee
是double
类型=> carNumb
应为double
类型以存储正确的值。
完整代码:
public void enterCar() {
String carInfo;
int carHours;
int i = 0;
double[] carNumb = new double[20];
double fee = Double.parseDouble("7.50");
double sum = 0;
final int MAX = 12;
for (; i < carNumb.length; i++) {
carInfo = JOptionPane.showInputDialog("Please enter the license plate of the car");
carHours = Integer.parseInt(JOptionPane.showInputDialog("Enter the number of hours the car was parked (1-12):"));
System.out.printf("\n");
System.out.printf("Details for car " + (carNumb[i] + 1) + " entered:\n");
System.out.printf("License plate Hours Fee:\n");
System.out.printf("" + carInfo + " " + carHours + " $");
carNumb[i] = getFee(fee, carHours);
System.out.printf("%3.2f", carNumb[i]);
System.out.printf("\n\n");
}
}
private double getFee(double fee, int hours) {
if (hours == 1) {
return fee;
}
if (hours == 2) {
return fee + 4.5;
}
if (hours >= 3) {
return 3 + hours * 4.5;
}
return 0;
}
我明白了吗?