You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Java柱状图代码实现星号数量向下取整显示?

修正Java柱状图星号显示问题

我来帮你搞定这个问题!你已经找对了方向——用整数除法计算星号数量,但问题出在for循环的逻辑上,咱们一步步理清楚:

问题根源

你先正确计算了需要的星号数量:int numAsterisks = points / amt_each;(比如48分的话,48/10=4,这正是你要的4个星号),但紧接着的for循环直接把numAsterisks重新赋值为0,然后用了错误的循环条件和步长,导致循环执行了5次,打印出5个星号。

原来的循环逻辑:

for(numAsterisks = 0; numAsterisks < points; numAsterisks += amt_each)

这个循环会在numAsterisks为0、10、20、30、40时执行(这些值都小于48),一共5次,所以打印了5个*,完全偏离了你预期的整数除法结果。

修正后的代码

只需要修改drawChart方法的循环部分,用你计算好的numAsterisks作为循环次数即可:

import java.util.Scanner;
public class BarChart2 {
 public static void main (String[] args) {
 Scanner input = new Scanner(System.in);
 int artPoints;
 int bobPoints;
 int calPoints;
 int danPoints;
 int eliPoints;
 final int AMT_EACH_ASTERISK = 10;
 System.out.println("Enter points earned for the season");
 System.out.print(" by Art >> ");
 artPoints = input.nextInt();
 System.out.print(" by Bob >> ");
 bobPoints = input.nextInt();
 System.out.print(" by Cal >> ");
 calPoints = input.nextInt();
 System.out.print(" by Dan >> ");
 danPoints = input.nextInt();
 System.out.print(" by Eli >> ");
 eliPoints = input.nextInt();
 System.out.println("\nPoints for Season (each asterisk represents " + AMT_EACH_ASTERISK + " points)\n");
 drawChart("Art", artPoints, AMT_EACH_ASTERISK);
 drawChart("Bob", bobPoints, AMT_EACH_ASTERISK);
 drawChart("Cal", calPoints, AMT_EACH_ASTERISK);
 drawChart("Dan", danPoints, AMT_EACH_ASTERISK);
 drawChart("Eli", eliPoints, AMT_EACH_ASTERISK);
 }
 public static void drawChart(String name, int points, int amt_each) {
 System.out.print(name + ": ");
 // 计算正确的星号数量(整数除法自动截断小数部分)
 int numAsterisks = points / amt_each;
 // 循环numAsterisks次,每次打印一个星号
 for(int i = 0; i < numAsterisks; i++)
 System.out.print("*");
 System.out.println();
 }
}

解释修正点

  1. 保留了正确的整数除法计算:int numAsterisks = points / amt_each;,这会自动舍去小数部分(比如48/10=4,59/10=5),符合每个星号代表10分的需求。
  2. 把for循环改成从0到numAsterisks的次数循环,每次打印一个星号,这样就会严格按照计算出的数量打印。

现在测试48分的情况,就会显示4个星号啦!

内容的提问来源于stack exchange,提问作者RUSSELL YANG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 08:17:33