Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.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_Loops - Fatal编程技术网

Java数字符号和星号

Java数字符号和星号,java,loops,Java,Loops,请帮帮我:我想试试直角的星号和数字符号。但我只得到了这个输出:我不能把数字符号放在这里 * ** *** **** ***** ****** 我想要的是,如果我输入6,输出为: * # * # * # * # * 示例如果输入3,则输出为: * # * # * # * # * 以下是我编写的代码: public static void main (String[] args) { Scanner i

请帮帮我:我想试试直角的星号和数字符号。但我只得到了这个输出:我不能把数字符号放在这里

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

*
 #
  *
   #
    *
     #
*
 #
  *
示例如果输入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();
        }

    }
      }
用……代替

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

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

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

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

    System.out.println();
}
注意:注意我使用变量c基本上保持一个整数,当它除以2得到索引时,求余数


对于n的大输入值,这是一个非常糟糕的主意,但对于您所使用的类型,这将起作用。

您需要在内部循环中保留打印空间,一旦它从内部循环打印出来,打印*和/或相应地打印

    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("#"); 
        }
    }

只要有奇数和偶数值的条件,在奇数和*上放置,从1开始j的值,内部for循环的条件应该有j
这应该可以做到,快速且简单。

您的代码甚至可以打印替代符号吗?试着至少在交替符号上做些工作。暂时忽略该模式。然后想出一些不起作用的东西。对不起,我是新手,那么我该怎么做才能得到这个程序呢?我刚刚试过,它工作正常。你试过了吗?@nullpointer:你说请仔细阅读问题,模式不同。在我的回答中,有两种模式,正如你应该看到的,我已经读过了?。既然你知道你的怀疑是错误的,你就谈谈评论。同样,您没有仔细阅读我的回答:我在代码后面写了关于它如何工作的解释。现在,要求提供一个远程java编译器链接是。。。20个字符的代码太棒了:我告诉过你它适合我。如果你不相信我,就自己试试吧。和我一样。保持怀疑,谈论事实。
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;
    }
}