嵌套循环中的星号,Java
Asterisk in Nested loops, Java
我正在尝试让我的代码打印出图像中的星号,如下所示。星号靠右对齐,下面有空格。我不知道如何让它向右移动。这是我的代码:
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();
}
}
矩阵问题对理解循环很有帮助..
了解您的问题:
1) 首先,在最后打印星号——这意味着你的第一个循环应该按降序排列
for(int i =7;i>=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
开始循环有时可以帮助您更好地想象。
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 结尾的行。因此,您从 i
从 1 开始并经过 3 1+2
, 5 3+2
,然后是 stopAt
7 5+2
.
嵌套的 for
循环必须始终打印 7 个字符,以确保 *
显示为右对齐。因此,循环从 1
运行到 7
.
这里是完整的代码:
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();
}
}
我正在尝试让我的代码打印出图像中的星号,如下所示。星号靠右对齐,下面有空格。我不知道如何让它向右移动。这是我的代码:
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();
}
}
矩阵问题对理解循环很有帮助..
了解您的问题:
1) 首先,在最后打印星号——这意味着你的第一个循环应该按降序排列
for(int i =7;i>=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
开始循环有时可以帮助您更好地想象。
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 结尾的行。因此,您从 i
从 1 开始并经过 3 1+2
, 5 3+2
,然后是 stopAt
7 5+2
.
嵌套的 for
循环必须始终打印 7 个字符,以确保 *
显示为右对齐。因此,循环从 1
运行到 7
.
这里是完整的代码:
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();
}
}