gpt4 book ai didi

Java学院实践

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:16:37 24 4
gpt4 key购买 nike

我是 Java 初学者,也是这个站点的新手。我正在学习数组和方法,不幸的是我被卡住了问题是:

一家医院可容纳 150 名患者。每个房间可容纳 3 名患者。
医院向病人收取 150 美元的住院费。如果每个房间住 3 个病人,医院额外收取 50 美元。提示用户输入患者人数并显示患者总数、所有费用的总金额。

在我看来,我想创建一个包含房间数量的并行数组和另一个包含每个房间患者数量的数组。

问题是:每次程序都会询问以下内容。输入房间 0 的患者数量输入房间 0 的患者数量输入房间 0 的患者数量代替:输入 #1 房间的患者数量输入房间 #2 的患者数量输入房间 #3 的患者数量

所以我认为这是一个逻辑错误,因为 roomNumbers[i] 没有更新到房间 1、房间 2 等,它一直只要求房间 0,欢迎大家提出建议,因为我刚刚开始这个新房间下学期的类(class)。我的逻辑有道理吗?非常感谢。

import javax.swing.JOptionPane;

public class Pingo {
public static void main(String[] args) {
final int MAXROOMS=50;
int[] roomNumbers = new int[MAXROOMS];
int [] patientQuantity = new int [roomNumbers.length];
int numPatients=getNumberOfPatients(roomNumbers,patientQuantity);
}


public static int getNumberOfPatients(int[] roomNumbers, int []patientQuantity){
int numPatients=0;

for(int i=0; i<patientQuantity.length; i++){
numPatients=Integer.parseInt(JOptionPane.showInputDialog("Enter amount of Patients for room:"
+ roomNumbers[i] ));
patientQuantity[i]=numPatients;
}
return numPatients;
}
}

最佳答案

问题出在这里:

int[] roomNumbers = new int[MAXROOMS];

您正在声明一个数组并对其进行初始化。问题是数组中的值都是零。这是因为当您使用 new 分配数组时,元素值将根据数组基本类型进行默认初始化:

  • 数字类型的默认初始值为零。
  • bool 类型的默认初始值为 false
  • 引用类型(类和数组类型)的默认初始值为 null

这里有两个简单的解决方案:

  • 为每个数组元素设置初始值;例如使用循环。
  • 不要使用数组来保存房间号;例如做一些简单的算术并使用您的索引变量 (i) 来计算房间号。 (想想……)

关于Java学院实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34445611/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com