我正在尝试将代码打印出图像中的星号,您将在下面看到。星号与右侧对齐,它们下面有空格。我无法弄明白,如何让它走向正确。这是我的代码:
public class Assn4 {
public static void main(String[] args) {
for (int i = 0; i <= 3; i++) {
for (int j = 0; j <= i; j++) {
System.out.print("*");
}
for (int x = 0; x <= 1; x++) {
System.out.println(" ");
}
for (int j = 0; j <= i; j++) {
System.out.print("*");
}
}
System.out.println();
}
}
答案 0 :(得分:1)
矩阵问题对于理解循环非常有用..
了解您的问题:
1)首先,最后打印星形 - 这意味着你的第一个循环应该按递减顺序
for(int i = 7; i&gt; = 0; i + = i-2)
2)以递增顺序打印星形 - 这意味着您的第二个循环应按递增顺序
for(int j = 0; j <= 7; j ++)
完整代码:
for(int i =7;i>=0; i=i-2){ // i=i-2 because *s are getting incremented by 2
for(int j =0;j<=7; j++){
if(j>=i){ // if j >= i then print * else space(" ")
System.out.print("*");
}
else{
System.out.print(" ");
}
}
System.out.println();// a new line just after printing *s
}
答案 1 :(得分:0)
使用1
启动循环有时可以帮助您更好地进行可视化。
int stopAt = 7;
for (int i = 1; i <= stopAt ; i += 2) {
for (int j = 1; j <= stopAt; j++) {
System.out.print(j <= stopAt - i ? " " : "*");
}
System.out.println();
}
请注意,每行如何打印以7开头的奇数个*
s。因此,您从1开始i
并经过3 1+2
,5 { {1}},然后3+2
7 stopAt
。
嵌套5+2
循环必须始终打印7个字符,以确保for
显示为右对齐。因此,循环从*
运行到1
。
答案 2 :(得分:0)
这里有完整的代码:
for(int i = 0; i < 8; i++){
if( i%2 != 0){
for(int x = 0; x < i; x++){
System.out.print("*");
}
}else{
System.out.println();
}
}