我是Java初学者,也是本网站的新手。
我正在学习数组和方法,不幸的是我被困住了
问题是:
一家医院可容纳150名患者。
每个房间可容纳3位患者。
医院向患者收取150美元的住院费。
如果每个房间有3位病人入住,
医院会另外收取$ 50。
提示用户输入患者人数并显示患者总数,所有费用的总计。
我认为,我想为每个房间创建一个平行的房间数量数组,并为每个房间创建另一个病人数量数组。
问题是:程序每次询问以下内容。
输入房间0的患者数
输入房间0的患者数
输入房间0的患者数
代替:
输入#1房间的患者数量
输入#2房间的患者数量
输入#3房间的患者数量
因此,我认为这是一个逻辑错误,因为roomNumbers [i]不会一直更新到1号室,2号室,等等,它一直一直只请求0号室,欢迎大家指教,因为我正开始为此新课程学习下学期。我的逻辑有道理吗?
非常感谢你。
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
)计算房间号。 (考虑一下...)