我正在尝试学习嵌套For Loops,并且我希望它用*打印出长度和宽度的显示。在宽度= 3和长度= 4的情况下,所需的输出应该看起来像是由*组成的3x4盒子。
我的For Loop是否正确嵌套?在宽度值大于长度的情况下,我是否需要两个For循环?
int width, length, i, j;
width = 3;
length = 4;
//Print the output
System.out.print("Here are the stars: ");
System.out.print("\n");
for(i=0; i<width; i++) {
System.out.print("*");
for(j=0; j<length; j++) {
System.out.println("*");
}
}
}
}
答案 0 :(得分:2)
您无法在第一个循环中打印星标。这是错的:
for(i=0; i<width; i++) {
System.out.print("*");
这是一个更正:
int width, length, i, t;
width = 3;
length = 4;
//Print the output
System.out.print("Here are the stars: ");
System.out.print("\n");
for (i = 0; i < width; i++) {
for (t = 0; t < length; t++) {
System.out.print("*");
}
System.out.println();
}
答案 1 :(得分:2)
基本上这里发生的是它正在逐行打印星星。我切换了宽度和长度,因为它应该到每一行并逐行打印出星星。
int width, length;
width = 3;
length = 4;
//Print the output
System.out.print("Here are the stars: ");
System.out.print("\n");
for (int i = 0; i < length; i++) {
for (int j = 0; j < width; j++) {
System.out.print("*");
}
System.out.println();
}
答案 2 :(得分:2)
这是我的尝试,因为我看到每个人都在切换宽度和长度?我认为长度意味着身高。
int width = 3;
int length = 4;
System.out.println("Here are the stars: ");
for(int i = 0; i < length; i++) {
for(int j = 0; j < width; j++) {
System.out.print("*");
}
System.out.println();
}
Here are the stars:
***
***
***
***
答案 3 :(得分:1)
for(i=0; i<width; i++) {
System.out.print("*");
for(j=0; j<length; j++) {
System.out.println("*");
}
}
**
*
*
*
**
*
*
*
**
*
*
*
因为您在内部循环中的每个“”之后添加换行符。将println移动到内循环之后。你需要做的所有外循环都是控制内循环执行的次数并打印换行符。 此外,您在内循环之前打印''是错误的。
这是你需要的
// Print the output
System.out.println("Here are the stars:");
for (i = 0; i < width; i++) {
for (j = 0; j < length; j++) {
System.out.print("*");
}
System.out.println();
}
此解决方案在一行(内循环)中打印length
个星号,后跟换行符。这样做width
次。
答案 4 :(得分:0)
一旦你掌握了正确的逻辑,你还需要考虑性能。输出到资源有成本。我会拆分数组并最小化写入System.out。
StringBuffer sb = new StringBuffer();
for (int w = 0; w < width; w++) {
sb.append('*');
}
final String s = sb.toString();
for (int h = 0; h < height; h++) {
System.out.println(s);
}
答案 5 :(得分:-1)
指定3x4星形图案,通常表示3行4列。但显然你想要4行3列。也就是说,长度是行数(3)和宽度(4)列数
for(int row = 0; row < length; row++) {
for(int col = 0; col < width; col++) {
System.out.print("*");
}
System.out.println();
}
作为旁注,没有理由,在for循环之外声明i
,j
实际上是不好的风格。在上面的代码段中,我在相应的for循环中声明了row
和col
变量。
答案 6 :(得分:-1)
您需要做两次小修改。将内部循环println更改为打印,然后在内部循环后添加println,如下所示:
int width, length, i, j;
width = 3;
length = 4;
//Print the output
System.out.print("Here are the stars: ");
System.out.print("\n");
for(i=0; i<length; i++) {
System.out.print("*");
for(j=0; j<width; j++) {
System.out.print("*");
}
System.out.println("");
}
另外......您需要更改宽度= 2和长度= 3或者以1开始循环。当前实现打印4-5矩阵。