Java 打印与人的年龄相匹配的字符,用于循环

Java 打印与人的年龄相匹配的字符,用于循环,java,netbeans,Java,Netbeans,我想制作一个可以打印的代码: 安迪** 克里斯蒂********** 艾米****** 我想让程序打印这个人的年龄。我也希望能够改变年龄,仍然得到正确的代码。我在下面写的代码只能打印出来 安迪* 克里斯蒂* 艾米* 如何更改for循环以实现这一点 public static void main(String[] args){ String name = "Andy"; int age = 2; drawChart(name, age); name = "Kristy"; a

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

安迪** 克里斯蒂********** 艾米******

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

安迪* 克里斯蒂* 艾米*

如何更改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("*");

     }

  }
publicstaticvoidmain(字符串[]args){
String name=“Andy”;
智力年龄=2;
图纸(姓名、年龄);
name=“Kristy”;
年龄=10岁;
图纸(姓名、年龄);
name=“艾米”;
年龄=5岁;
图纸(姓名、年龄);
公共静态void绘图图(字符串名称,整数){
对于(int i=年龄;i变化:

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

for(int i=age;i您的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("");
for(int i=0;i将方法更改为:

    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();
    }
publicstaticvoiddrawchart(字符串名,int-age){
系统输出打印(名称+“:”);
for(int i=0;i
首先打印姓名和星星,最后是换行符。 当然,您的for循环参数毫无意义

因为:
它从2开始,一直运行到2循环中有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
for(int i=age;i循环应以i=1开始
System.out.println(“*”)//应该使用print来避免换行
}
//在此循环之后,添加一个空白的println语句以添加新行

for循环中有一个错误

更改如下:

for (int i = 1; i <= age; i++) {
    System.out.print("*");           // Remove println here 
}
// Go to next line outside the loop
System.out.println("");

for(int i=1;i您可以在其他答案中找到问题,但我想提供一些不错的替代方案。有人可能会说这对性能不好,但我喜欢小代码;)

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

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

这将简单地创建一个带有
age
空格数的字符串,然后用
*

替换它们。您的循环从
int i=age
开始。看起来应该是
int i=1
print not println它是有效的,但不执行所需操作。无效的感觉好像无法编译(但我的感觉)你可能是对的,我可能会用不同的词来描述循环中变量的问题。
for (int i = 1; i <= age; i++) {
    System.out.print("*");           // Remove println here 
}
// Go to next line outside the loop
System.out.println("");
public static String getAge(int age){
    return String.format("%" + n + "s","").replace(" ", "*");
}