使用并行数组获取最高汽车销售额及对应月份(JOptionPane显示问题)
解决方案
你的代码只记录了最高销售额的数值,没保存它对应的数组索引,所以没法关联到月份数组里的对应值。只需要加个变量跟踪最高销售额的索引就能解决:
import javax.swing.JOptionPane; public class CarSalesDemo { public static void main(String[] args) { int[] 汽车销售额 = {1234,2343,1456,4567,8768,2346,9876,4987,7592,9658,7851,2538}; String[] 月份 = {"一月","二月","三月","四月","五月","六月", "七月","八月","九月","十月","十一月","十二月"}; int 最高销售额 = 汽车销售额[0]; // 新增变量保存最高销售额对应的月份索引 int 最高销售额月份索引 = 0; for(int i = 0; i < 汽车销售额.length; i++) { if(汽车销售额[i] > 最高销售额) { 最高销售额 = 汽车销售额[i]; // 更新索引为当前循环的i 最高销售额月份索引 = i; } } // 用索引取出对应月份拼接到消息里 JOptionPane.showMessageDialog(null, "最高汽车销售额为:" + 最高销售额 + ",发生在" + 月份[最高销售额月份索引]); } }
关键改动说明
- 新增
最高销售额月份索引变量,初始值设为0(和最高销售额的初始位置对应) - 每次找到更大的销售额时,同步更新
最高销售额月份索引为当前循环的索引i - 在消息对话框中通过
月份[最高销售额月份索引]获取对应月份并拼接
如果需要保留原英文变量名,可使用以下版本:
import javax.swing.JOptionPane; public class CarSalesDemo { public static void main(String[] args) { int[] CarSales = {1234,2343,1456,4567,8768,2346,9876,4987,7592,9658,7851,2538}; String[] Months = {"January","February","March","April","May","June", "July","August","September","October","November","December"}; int HighNum = CarSales[0]; int highMonthIndex = 0; for(int i = 0; i < CarSales.length; i++) { if(CarSales[i] > HighNum) { HighNum = CarSales[i]; highMonthIndex = i; } } JOptionPane.showMessageDialog(null, "The highest car sales value is : " + HighNum + " - which happened in the month of " + Months[highMonthIndex]); } }
内容的提问来源于stack exchange,提问作者QUIXOTIC.CODE
相关产品推荐
相关产品推荐

