Java中带星号的三角形

Java中带星号的三角形,java,loops,for-loop,geometry,Java,Loops,For Loop,Geometry,我正在尝试用星号制作一个可伸缩的三角形,我已经得到了这段代码,它完全是功能性的,并且调整了大小,但是它没有输出三角形的第三面。欢迎提出任何建议 import java.util.Scanner; class Triangle { public static void main(String[] args){ Scanner a; a = new Scanner(System.in); System.out.printl

我正在尝试用星号制作一个可伸缩的三角形,我已经得到了这段代码,它完全是功能性的,并且调整了大小,但是它没有输出三角形的第三面。欢迎提出任何建议

    import java.util.Scanner;

    class Triangle {
    public static void main(String[] args){

        Scanner a;
        a = new Scanner(System.in);

        System.out.println("Welcome to the Scalable Triangle program!");
        System.out.print("What size triangle do you want?");
        int size = a.nextInt();
        for (int j = 0; j < (size - 1); j++)
          System.out.print(" ");
        System.out.println("*");
        //top line
        for (int j = 1; j < (size - 1); j++)
        {
          for (int k = 0; k < (size - 1 - j); k++)
          System.out.print(" ");
          System.out.println("*");
        }
        for (int j = 0; j < size ; j++)
           System.out.print("* ");
        System.out.println(" ");
        //bottom line
      }
    }
现在它将输出以下内容:

      *
     * 
    *   
   *       
  *       
 *         
* * * * * * *

好的,我快速看了一下,它没有打印第三面的原因是因为你没有打印它的代码

您要查看的位位于嵌套循环中(您正在使用的第二个j计数器)。此时,嵌套循环(使用k计数器的循环)正在输出下面x之前的空格

      *
     x 
    x   
   x       
  x       
 x         
* * * * * * *
您要做的是更改

System.out.println("*");
在这个循环中,不要开始新的生产线

然后再添加一个循环,以添加空格和星号。对于该星号,您需要将其作为新行输出

因为这看起来像是一个家庭作业,所以我不会给你任何代码来完成它。这应该是足够的信息来帮助你解决这个问题。请记住,始终一次跟踪代码1行,以便知道它在做什么

另外,要注意可能要添加的任何额外空格。如果这是一项家庭作业任务,您将希望输出与提供的输出完全匹配


祝你好运。

试着得到行号、空格数、星星数等之间的数学关系,如下所示:

行号:第一颗星后的空格数

      *
    1* *1
   2*   *3
  3*     *5  
 4*       *7
5*         *9
* * * * * * *
如果第一颗星后的空格数=x,行号=y。然后 x=2y-1

守则:

public class Dia {

    public static void main(String[] args) {

        System.out.println(drawTriangle("*", 7));

    }// main

    // Assume equilateral triangle
    public static String drawTriangle(String symbol, int side) {
        StringBuilder sb = new StringBuilder();

        int i = 0;

        //Top line
        for(i = 1; i < side; i++){sb.append(" ");}
        sb.append(symbol);
        sb.append("\n");

        for(i = 1; i < side-1; i++){
            for(int j = 1; j < side-i; j++){sb.append(" ");}
            sb.append(symbol);

            for(int k = 1; k <= (i * 2)- 1 ; k++){sb.append(" ");}
            sb.append(symbol);
            sb.append("\n");

        }

        //Bottom line
        for(i = 0; i < side; i++){sb.append(symbol + " ");}

        return sb.toString();

    }

}
公共类{
公共静态void main(字符串[]args){
System.out.println(drawTriangle(“*”,7));
}//主要
//假设为等边三角形
公共静态字符串drawTriangle(字符串符号,int侧){
StringBuilder sb=新的StringBuilder();
int i=0;
//顶线
对于(i=1;i对于(int k=1;k这将帮助您

import java.util.Scanner;

class Triangle {
public static void main(String[] args){

    Scanner a;
    a = new Scanner(System.in);

    System.out.println("Welcome to the Scalable Triangle program!");
    System.out.print("What size triangle do you want?");
    int size = a.nextInt();
    for (int j = 0; j < (size - 1); j++)
      System.out.print(" ");
    System.out.println("*");
    //top line
    for (int j = 1; j < (size - 1); j++)
    {
      for (int k = 0; k < (size - 1 - j); k++)
      System.out.print(" ");
      System.out.print("*");
      for (int m = 0; m < 2*j-1; m++){
              System.out.print(" ");
        }
       System.out.println("*");
    }
    for (int j = 0; j < size ; j++)
       System.out.print("* ");
    System.out.println(" ");
    //bottom line
  }
}
import java.util.Scanner;
阶级三角{
公共静态void main(字符串[]args){
扫描仪a;
a=新扫描仪(系统英寸);
System.out.println(“欢迎使用可伸缩三角形程序!”);
System.out.print(“您想要多大的三角形?”);
int size=a.nextInt();
对于(int j=0;j<(大小-1);j++)
系统输出打印(“”);
System.out.println(“*”);
//顶线
对于(int j=1;j<(大小-1);j++)
{
对于(int k=0;k<(大小-1-j);k++)
系统输出打印(“”);
系统输出打印(“*”);
对于(int m=0;m<2*j-1;m++){
系统输出打印(“”);
}
System.out.println(“*”);
}
对于(int j=0;j
哪一面是第三面,您试过调试代码吗?您做了哪些调试代码的工作?虽然您可能不需要额外的括号,但最好始终使用它们“它不打印第三面的原因是因为您没有打印代码。”我对是否应该嘲笑这一点深感矛盾……但是+1表示好的提示,而不是给出代码。有更好的方法吗?
import java.util.Scanner;

class Triangle {
public static void main(String[] args){

    Scanner a;
    a = new Scanner(System.in);

    System.out.println("Welcome to the Scalable Triangle program!");
    System.out.print("What size triangle do you want?");
    int size = a.nextInt();
    for (int j = 0; j < (size - 1); j++)
      System.out.print(" ");
    System.out.println("*");
    //top line
    for (int j = 1; j < (size - 1); j++)
    {
      for (int k = 0; k < (size - 1 - j); k++)
      System.out.print(" ");
      System.out.print("*");
      for (int m = 0; m < 2*j-1; m++){
              System.out.print(" ");
        }
       System.out.println("*");
    }
    for (int j = 0; j < size ; j++)
       System.out.print("* ");
    System.out.println(" ");
    //bottom line
  }
}