Java编号标志和星号

时间:2017-09-09 06:16:17

标签: java loops

请帮帮我:(我想尝试一个直角的替代星号和数字符号。但我只得到这个输出:(我不能在这里放数字符号)

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

我想要的是如果我输入6输出是:

*
 #
  *
   #
    *
     #

如果i输入3,则输出为:

*
 #
  *

这是我编写的代码:

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

    int x=0;

     System.out.println("Enter number: ");
        x = in.nextInt();   

    for( int i = 1; i <= x; i++ ){


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

            }
            System.out.println();
        }

    }
      }

5 个答案:

答案 0 :(得分:0)

只需将"*"替换为

j < i-1 ? " " : (i % 2 != 0 ? "*" : "#")

这将通过测试行和列位置并写入正确的字符来编写正确的输出。

答案 1 :(得分:0)

我建议您创建一个包含符号的char数组。您可以使用计数器变量并以这样的方式使用它,即在每次迭代时它将指向您想要显示的字符的索引。

char sym[] = {'#', '*'};
int n = user's input, i,j,c=1;
for(i = 1; i<=n; i++){
    for(j = 1; j<i; j++)
        System.out.print(" "); //space

    System.out.print(sym[c%2]);
    c++;

    System.out.println();
}

注意:请注意我使用变量c的方式基本上保持一个整数并找到余数,当它除以2得到索引。

对于n的大输入值,这是一个非常糟糕的主意,但是对于您在问题中提到的各种输入都是​​有用的。

答案 2 :(得分:0)

您需要在内圈中保留打印空间,并在内环打印*和/或#时相应。

    Scanner in = new Scanner(System.in);        

    int x=0;

    System.out.println("Enter number: ");
    x = in.nextInt();

    for(int i=1;i<=x;i++){

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

        if(i%2==1)
        {
           System.out.println("*");
        }else
        {
           System.out.println("#"); 
        }
    }

>>>Demo Link<<<

答案 3 :(得分:0)

只要具有奇数和偶数值的条件,将放在偶数上,将*放在奇数上,并从1开始j的值,并且内部for循环的条件应该 j <= i

我刚刚将您的代码更改为如下所示:

for( int i = 1; i <= 6; i++ ){
                  for( int j = 1; j <=i; j++ ){
                        if(i==j){
                              if(i%2==0){
                                    System.out.print("#");
                              }else{
                                    System.out.print("*");
                              }
                        }else{
                              System.out.print(" ");
                        }
                  }
                  System.out.println();
              }

答案 4 :(得分:0)

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    System.out.print("Enter number: ");
    int x = in.nextInt();

    String spaces = "";
    boolean star = true;

    for (int i = 0; i < x; i++) {
        System.out.println(spaces + (star ? "*" : "#"));

        spaces += " ";
        star = !star;
    }
}

这应该是诀窍,快速&amp;容易。