如何编写使用*打印大写字母F的嵌套循环

时间:2015-04-28 16:31:50

标签: java if-statement for-loop while-loop

  for (int i = 1; i <= 7; i++)
     if (i < 3 || i == 4) for (int j = 1; j <= 5; j++)
     System.out.print("*");
    if (1 > 2 && 1 < 4 || 1 > 4 && 1 <= 7) for (int k = 1; k <= 2; k++)
     System.out.print("*");
    System.out.print("");
    }
  }
**************
*****
*****
**************
**************
*****
*****
*****
*****

我希望使用(for和if)这样做。

3 个答案:

答案 0 :(得分:2)

因为在这个例子中,所有水平线都是从最左边开始的连续线*,你可以将星数写入int []。

int[] stars = new int[] {14, 5, 5, 14, 14, 5, 5, 5, 5};
for (int currentStars : stars) {
    for (int i = 0; i < currentStars; i++) {
        System.out.print('*');
    }
    System.out.println();
} 

答案 1 :(得分:0)

如果您只想写F,请使用单个循环。如果要编写所有字母,则必须使用某些List或数组来改进方法以存储字母形状

循环示例

for (int i = 0; i < 9; i++) {
    int repeat = 5;
    if (i == 0 || i == 3 || i == 4) repeat = 14;

    for (int c = 0; c < repeat; c++)
        System.out.print("*");
}

StringUtils

的示例
for (int i = 0; i < 9; i++) {
    int repeat = 5;
    if (i == 0 || i == 3 || i == 4) repeat = 14;

    StringUtils.repeat("*", repeat);
}

答案 2 :(得分:0)

只需一个循环:

for (int i = 1; i <= 9; i++){
   if(i=1 || i=4 || i=5)
     System.out.println("**************");
   else
     System.out.println("*****");
}

如果你想使用嵌套循环,你可以这样做:

int rowLength=0;
for (int i = 1; i <= 9; i++){
   if(i=1 || i=4 || i=5)
     rowLength=14;
   else
     rowLength=5;
  for (int j = 0; j < rowLength; j++){
      System.out.print("*");
  }
  System.out.println();
}

你不需要循环来做到这一点,但我想这是某种学校问题。