java - 星号代表带有单独测试仪的数字

标签 java

我正在开发一个类项目,我必须创建一个 Java 类来显示数字的星号。

例如,5 就是 *****。

现在我知道网上有很多这样的文件,但我们的需要 2 个文件。实际的循环是在主 Java 文件中完成的,但 main 方法是在 Java 测试文件中。

public class BarChart {

private int numberOfStars;

public BarChart(int numberOfStars) {
    this.numberOfStars = numberOfStars;
}

public void displayBar() {
    for(int counter = 1; counter < numberOfStars; counter++); {
    {
        System.out.print("*");
    }
    System.out.println(); //display a new line at the end of all stars
}
}
}

测试类

import java.util.Scanner;

public class BarChartTester {

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    //loop 5 times asking for number
    System.out.print("Eenter a number:");
    int numberOfStars = input.nextInt();
    BarChart barChart = new BarChart(numberOfStars);
    barChart.displayBar();
}
}

我的想法是,循环将运行,每次增加计数器,直到计数器等于星星的数量,但它永远不会打印超过 1 颗星星。

对于这个作业,我只能使用 for 循环和 System.out.print。

已更新。

最佳答案

问题出在你的构造函数中:

this.numberOfStars = numberOfStars = 0;

这始终将 numberOfStars 设置为 0

此外,你的循环应该是 < numberOfStars 而不是 <= numberOfStars,否则你会得到比预期多的一颗。

更新:

for(int counter = 1; counter < numberOfStars; counter++); {

应该是

for(int counter = 0; counter < numberOfStars; counter++) {

关于java - 星号代表带有单独测试仪的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48998993/

相关文章:

java - 使用Apache POI替换docx文本框中的文本

java - JsonSerialize/JsonDeserialize 在 Apache Tomcat (TomEE) 中不起作用

java - 如何在 Java Android Studio 项目中使用 .so 共享库

java - sendRedirect()之后的代码还会被执行吗?

java - 从命令行运行包中的java

java - Logback 的调试输出未显示

java - 如何确定我的目标 SDK 需要哪个 Android Gradle 插件版本?

java - Android 上 Java lib 和 C++ dll 之间的性能

java - 将 IP 地址与子网掩码表相匹配......Java 中最好的方法是什么?

java - 解决错误: unmappable character for encoding UTF8