什么是合适的循环?

时间:2015-04-12 12:37:27

标签: java loops for-loop while-loop

我目前的代码是:

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

但输出是:

***

我想要实现的目标是:

***  
**#  
*##  
###

我使用了适当的循环还是与循环参数或循环体有关? 我能想到的唯一解决方案是乘以一个字符串,但这当然是不可能的。

2 个答案:

答案 0 :(得分:0)

int index = 3;
for(int i=0; i<=3; i++) {
    for(int j=0; j<3; j++) {
        if(j < index) {
            System.out.print("*");                  
        } else {
            System.out.print("#");
        }
    }
    System.out.println("\n");
    index--; 
}

答案 1 :(得分:0)

如果您想在单个for循环中执行此操作,可以按如下方式执行:

char[] tmp = new char[3];
java.util.Arrays.fill(tmp, 0, 3, '*');
String stars = new String(tmp);  // stars is now "***"
java.util.Arrays.fill(tmp, 0, 3, '#');
String hashes = new String(tmp); // hashes is now "###"

for (int i = 0; i <= 3; ++i) {
  System.out.println(
    stars.substring(0, 3 - i)  // 3 - i '*' characters
        + hashes.substring(0, i)  // i '#' characters
  );
}

我认为这与你在“乘以”字符串时可能意味着的一致。