有人知道只使用一个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);
答案 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);
}