如何仅使用循环打印此

时间:2014-05-08 04:31:28

标签: java loops

我只想在简单的java程序中使用循环打印它。

  

----*----
  ---*-*---
  --*-*-*--
  -*-*-*-*-
  *-*-*-*-*

3 个答案:

答案 0 :(得分:4)

小步解决问题。

  1. 用于打印没有图案的正确矩形的循环

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

    这将提供以下输出。

      

    ---------
      ---------
      ---------
      ---------
      ---------

  2. 使用if条件创建模式。

    for (int i = 0; i < 5; i++) {
        for (int j = 0; j < 9; j++) {
            if ((j - i) % 2 == 0) { // Condition for alternate stars
                System.out.print("*");
            } else {
                System.out.print("-");
            }
        }
        System.out.println();
    }
    

    这将提供以下输出。

      

    *-*-*-*-*
      -*-*-*-*-
      *-*-*-*-*
      -*-*-*-*-
      *-*-*-*-*

  3. 限制三角形内部的图案。

    for (int i = 0; i < 5; i++) {
        for (int j = 0; j < 9; j++) {
            if (i + j > 3 && j - i < 5) { // Equations of straight lines in triangle
                if ((j - i) % 2 == 0) {   // Condition for alternate stars
                    System.out.print("*");
                } else {
                    System.out.print("-");
                }
            } else {
                System.out.print("-");
            }
        }
        System.out.println();
    }
    

    这将提供以下输出。

      

    ----*----
      ---*-*---
      --*-*-*--
      -*-*-*-*-
      *-*-*-*-*

  4. 缩减条件的重构

    for (int i = 0; i < 5; i++) {
        for (int j = 0; j < 9; j++) {
            if (i + j > 3 && j - i < 5 && (j - i) % 2 == 0) {
                System.out.print("*");
            } else {
                System.out.print("-");
            }
        }
        System.out.println();
    }
    

    这将提供以下输出。

      

    ----*----
      ---*-*---
      --*-*-*--
      -*-*-*-*-
      *-*-*-*-*

  5. 希望这有帮助。
    祝你好运。

答案 1 :(得分:1)

试试这个:D

public static void main(String[] argu) {

    int index=8;
    for(int i=0;i<5;i++) {

        for(int j=index;j>0;j--) {
            System.out.print("-");
        }
        index--;
        if(i==4) {
            System.out.print("*");
        }else {
            System.out.print(" ");
        }   
    }
}

答案 2 :(得分:-1)

public static void main(String[] args){

    for(int i=5;i>=1;i--){
            int otherSide = 10-i;
            int printStar = -1;     
        for(int j=1;j<=9;j++){

            if(j>=i && j<=otherSide){
                printStar*=-1;
                if(printStar==1) System.out.print("*");
                else System.out.print("-");
            }
            else
                System.out.print("-");
        }
        System.out.println("");
    }

}

找到*的起始索引和上次打印的部分。在范围内交替打印星星。