如何在Java中返回数组的所有浮点值?当前仅得最后值求修正
问题分析与解决方案
你的代码核心问题出在循环的起始索引设置错误上——Java数组的索引是从0开始的,但你的循环从i=1启动,这直接导致数组的第一个元素(索引0)始终是默认的0.0;如果传入的patientsCount等于1,循环甚至根本不会执行,返回的数组里只有一个未赋值的0.0,这应该就是你误以为“仅能得到最后一个值”的原因。
另外,循环条件i < patientsCount是正确的,只要调整起始索引,就能让数组的每一个元素都被赋值。
修正后的代码
public static float[] generatePatientsTemperatures(int patientsCount) { // 初始化指定长度的浮点数组 float[] patientsTemperature = new float[patientsCount]; // 从索引0开始遍历数组的每一个元素 for (int i = 0; i < patientsCount; i++) { // 生成32.00到40.00之间的随机温度,保留两位小数 float rawTemperature = (float) (Math.random() * 8) + 32; patientsTemperature[i] = Math.round(rawTemperature * 100) / 100.0f; } return patientsTemperature; }
关键修正说明
- 循环起始索引改为0:确保数组的每一个位置都被遍历到并赋值,不会遗漏第一个元素。
- 优化温度计算逻辑:把温度生成拆分为两步,代码可读性更强;用
100.0f替代(float)100.0,写法更简洁统一。
测试示例
当你调用generatePatientsTemperatures(3)时,会得到一个包含3个有效随机温度的数组,类似:
[36.72, 38.15, 34.90]
每个元素都会被正确赋值,不会再出现只有最后一个值有效的情况。
内容的提问来源于stack exchange,提问作者ArturKnyazev
相关产品推荐
相关产品推荐

