我目前的代码是:
for (int i = 0; i <= 3; i++){
System.out.print("*");
但输出是:
***
我想要实现的目标是:
***
**#
*##
###
我使用了适当的循环还是与循环参数或循环体有关? 我能想到的唯一解决方案是乘以一个字符串,但这当然是不可能的。
答案 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
);
}
我认为这与你在“乘以”字符串时可能意味着的一致。