如何将两个for循环组合成一个(在java中)

时间:2014-09-25 18:03:44

标签: java loops for-loop

有人知道只使用一个for循环而不是两个来重写此代码吗?

String message = "" ;
for(int i=0; i<8; i++) {
    for (int j = 0; j<i; j++) {
        message = message + "*";
    }
    message = message + "\n";
}
JOptionPane.showMessageDialog(null, message);

6 个答案:

答案 0 :(得分:2)

for(int i = 0; i < 8; i++){
    message += "*******".substring(0, i) + "\n";
}

你也应该使用StringBuilder

答案 1 :(得分:2)

一种方式:

String message = "";
String line = "";

for(int i=0; i<8; i++) {
    message = message + line + "\n";
    line = line + "*";
}

答案 2 :(得分:1)

此代码满足要求:

String message = "" ;
String m = "";
for(int i = 0; i < 8; i++)
{
    message = message + m + "\n";
    m = m + "*";
}
JOptionPane.showMessageDialog(null, message);

答案 3 :(得分:1)

所以,因为这是一个有趣的解决方案的帖子,尝试我的:

        String message = "";
        for (int i = 0; i < 7; i++) {
            message = "*\n" + message.replaceAll("\n", "*\n");
        }

答案 4 :(得分:1)

我会留给读者,弄清楚这是否,如何以及为何有效:)

    String message = "";
    int n = 8;
    int s = (int) Math.round((n + 1) * (n * 0.5));
    int j = 0, l = 1;
    for (int i=0; i < s; ++i) {
        int k = Integer.signum(j - i) ^ 1;
        message += "*\n".charAt(k);
        l += k;
        j += (l * k);
    }

答案 5 :(得分:0)

这是另一个,简短而有趣:)

    String message = "\n";
    for (int i = 0; i < 7; i++) {
        message = message + "*" + message.substring(message.length() - i - 1);
    }