Java打印循环模式

时间:2015-10-22 19:37:22

标签: java

我开始学习java。我已经学会了循环,并试图打印这个模式,根据用户输入告诉我们这个方块应该有多少行和字符。

-+++
+-++
++-+
+++-

但我无法弄清楚如何让两个嵌套的for循环同时执行此操作。有人可以帮忙吗?

6 个答案:

答案 0 :(得分:3)

你只需要两个循环,嵌套,当第一个计数器与第二个计数器相等时,打印-,否则打印+

我认为一旦你有了这个想法,这个代码很容易产生。

祝你好运。

答案 1 :(得分:3)

这是支持@YassinHajaj的答案的代码:

int len = 4;
for(int i = 0; i < len; i++) {//iterates through the rows
  for(int j = 0; j < len; j++) {//iterates through the columns
    if(i == j) {
      System.out.print("-");
    }else{
      System.out.print("+");
    }
  }
  System.out.println("");//print new line after row is finished.
}

答案 2 :(得分:2)

这应该可以正常工作,请注意这里没有使用条件语句,这适用于任意数量的行和字符(ch),而不仅限于方形输入。

int lines = 4;
int ch = 4;
for(int i=0;i<lines;i++) { //lines
    int ch1 = i%ch;  //mod of current line and number of characters, 
    //Above is for dynamic number of lines and characters, not just square inputs.
    for(int j=0;j<ch1; j++) {
        System.out.print("+");
    }
    System.out.print("-");
    for(int j=ch1;j<ch-1; j++) {
        System.out.print("+");
    }
    System.out.println();
}

答案 3 :(得分:1)

这是获得模式的一个小例子

它以循环开始,然后在&#34; - &#34;之前循环。之后&#34; - &#34;填写&#34; +&#34; s

    int count = 8;
    for(int i = 0; i < count; i++)
    {
        for(int a = 0; a < i; a++)
            System.out.print("+");
        System.out.print("-");
        for(int b = i + 1; b < count; b++)
            System.out.print("+");
        System.out.println();
    }

答案 4 :(得分:1)

这是一个循环解决方案:

int len = 4;
int pos = 1;
for(int i=1;pos<len+1;i++) {
    if(i%(len+1)==0) {
        pos=pos+1;
        i=0;
        System.out.println();
    } else if(i==pos) {
        System.out.print("-");
    } else {
        System.out.print("+");
    }
}

输出:

-+++
+-++
++-+
+++-

答案 5 :(得分:1)

短,非常快,单循环版本:

public static void printSquare(int size) {
    char[] buf = new char[size];
    Arrays.fill(buf, '+');
    for (int i = 0; i < size; i++) {
        buf[i] = '-';
        System.out.println(buf);
        buf[i] = '+';
    }
}