Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 添加字符的次数与添加数字的次数相同_Java_String_Char - Fatal编程技术网

Java 添加字符的次数与添加数字的次数相同

Java 添加字符的次数与添加数字的次数相同,java,string,char,Java,String,Char,因此,我需要制作一个程序,让用户输入一个高度,并输出带有嵌套循环的以下形状: * * * * * * * * * * * * * * * * * * * * * * * * * 我的想法是使用一个字符作为一个黑色空间,当给定高度时,对应于我需要多少空间才能得到正确的形状。然而,我很难去拜访它。如何使char在同一行上运行一定次数。我希望它与第二个循环中的“x”值相对应 import java.util.Scanner; 公共艺术类 { 公共静态v

因此,我需要制作一个程序,让用户输入一个高度,并输出带有嵌套循环的以下形状:

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


我的想法是使用一个字符作为一个黑色空间,当给定高度时,对应于我需要多少空间才能得到正确的形状。然而,我很难去拜访它。如何使char在同一行上运行一定次数。我希望它与第二个循环中的“x”值相对应


import java.util.Scanner;
公共艺术类
{
公共静态void main(字符串[]args)
{
扫描仪sc=新的扫描仪(System.in);
内部高度;
字符星='*';
//获取首选高度
System.out.println(“输入您希望杰作达到的高度:”;
高度=sc.nextInt();
对于(int i=0;高度>i;i--)
{
对于(int x=0;x

感谢您提前提出的建议

要获得所需的输出,可以使用此金字塔算法

public static void main(String[] args) {

Scanner s = new Scanner(System.in);
int height = s.nextInt();
char star = '*';

 for(int i = 0;i < height; i++) {

    for(int j = 0; j < height - i; j++) {
        System.out.print(" ");
    }

    for(int k = 0; k <= i; k++) {
        System.out.print(star + " ");
    }
    System.out.println();  
}

}
publicstaticvoidmain(字符串[]args){
扫描仪s=新的扫描仪(System.in);
int height=s.nextInt();
字符星='*';
对于(int i=0;ifor(int k=0;k您的
for循环
存在无限循环问题。请尽量避免这种情况

顺便说一下,另一个金字塔算法。干杯

for (int i=height; i > 0; i--)
{
    if(i!=1) {
        for(int y = i-1; y>0; y--) {
            System.out.print("  ");
        }
    }

    for (int x = 0; x < 2*(height-i+1)-1; x++)
    {
        System.out.print("* ");
    }
    System.out.println();

}
for(int i=height;i>0;i--)
{
如果(i!=1){
对于(int y=i-1;y>0;y--){
系统输出打印(“”);
}
}
对于(int x=0;x<2*(高度-i+1)-1;x++)
{
系统输出打印(“*”);
}
System.out.println();
}

您的上述代码是伪代码吗?您在内部for循环中的数学陈述不正确您有一个大于0的输入高度的无限循环。for(int i=0;height>i;i--)是的,上面的代码只是我在想我应该做什么,它一点也不完整。你允许使用递归吗?好的,在你的帮助下,我让它开始工作。只是为了确保我理解这里发生的事情:用户输入一个值。然后该值进入一个循环,在那里它将运行用户输入的数字。然后在第二个循环中循环,它通过从高度减去i来确定要输出多少空间。在最后一个循环中,它打印出正确数量的星星。这在查看它时是有意义的。感谢大家的评论和回答。@ChargeNective!我很高兴你让它工作了!一步一步地使用这样的程序,分析什么是和什么是n需要发生的事件是必不可少的,尤其是在有很多循环的情况下!
for (int i=height; i > 0; i--)
{
    if(i!=1) {
        for(int y = i-1; y>0; y--) {
            System.out.print("  ");
        }
    }

    for (int x = 0; x < 2*(height-i+1)-1; x++)
    {
        System.out.print("* ");
    }
    System.out.println();

}