打印符合人口年龄的字符,使用for循环

时间:2017-05-10 11:11:24

标签: java netbeans

我想制作一个可以打印的代码:

Andy ** Kristy ********** Amy *****

我希望程序打印*这个人的年龄。我也希望能够改变年龄并仍然得到正确的代码。我在下面写的代码只会打印出来

Andy * Kristy * Amy *

如何更改for循环以实现此目的?

public static void main(String[] args){

  String name = "Andy";
  int age = 2;
  drawChart(name, age);
  name = "Kristy";
  age = 10;
  drawChart(name, age);
  name = "Amy";
  age = 5;
  drawChart(name, age);

public static void drawChart(String name, int age){



     for(int i = age; i <= age; i++){

        System.out.println("*");

     }

  }

6 个答案:

答案 0 :(得分:1)

你的for循环无效。您需要设置i = 1,甚至将其更改为以下内容:

for (int i=0; i<age; i++) {
    System.our.print("*");
}
// Also add new line after printing all stars, not for each star
System.out.println("");
祝你好运

答案 1 :(得分:1)

将方法更改为:

    public static void drawChart(String name, int age){


        System.out.print(name+": ");
         for(int i = 0; i < age; i++){

            System.out.print("*");

         }
         System.out.println();
    }

首先打印名称和星号,然后打印换行符。 并且肯定你的for Loop参数没有任何意义。

由于: 它从2开始并一直运行到2 <= 2

for(int i = age; i <= age; i++){

答案 2 :(得分:0)

变化:

 for(int i = age; i <= age; i++){
    System.out.print("*");
 }

要:

 for(int i = 0; i < age; i++){
    System.out.print("*");
 }

您当前的循环始于&#39; age&#39;而不是0使它只进行一次迭代。

答案 3 :(得分:0)

循环中有2个问题, 请参阅下面的评论

    for(int i = age; i <= age; i++){ --> Loop should start with i=1
        System.out.println("*"); // You should use print to avoid new line
     }
     // After this Loop add a blank println statement to add a new line

答案 4 :(得分:0)

for循环中有一个错误。

按如下方式更改:

null

答案 5 :(得分:0)

你可以在其他答案中找到问题,但我想提供一些不错的选择。有些人可能会说这对性能不好,但我喜欢小代码;)

您可以使用String.format方法来执行此操作。

public static String getAge(int age){
    return String.format("%" + n + "s","").replace(" ", "*");
}

这只会创建一个age个空格的字符串,然后用*替换它们。