我 运行 对这个嵌套的 for 循环没有想法
I ran out of ideas for this nested for loop
所以我正在努力练习Java。我是初学者。
我有这个练习,它要求我编写一个嵌套的 for 循环。
结果应该是这样的:
Enter the size:4
Triangle is:
1
22
333
4444
Enter the size:6
Triangle is:
1
22
333
4444
55555
666666
这是我的代码:
public static void main(String arg[]){
Scanner scanner = new Scanner(System.in);
System.out.println("Enter the size:");
int size=scanner.nextInt();
System.out.println("Triangle is:");
//add your nested for loop logic here
//start
for(int i = 1; i <= size; i++)
{
System.out.println(i);
for(int j = 1; j < size; j++)
{
}
我正在努力思考它,但我似乎想不出其他方法。
那我需要做什么?
使用以下循环:
for (int i = 1; i <= size; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(i);
}
System.out.println();
}
这将产生:
Enter the size:
4
Triangle is:
1
22
333
4444
当变量 j
从 1
运行到 i
时,内部循环将打印数字 i
、i
次。然后在下一行我们引入一个新行。
除了已经说过的内容之外,我还想提几件事。
在尝试将其实现为代码之前,您应该尝试在脑海中排列您在算法设计中所做的事情。在这种情况下,您实际上需要做什么才能使三角形出现?首先,您需要跟踪您在哪一行,然后您在该行的哪一行。最大行数由用户在 size
中指定,所以你就到此为止。然后对于每一行,您将打印一个字符,该字符也恰好是行号。最大列数与您所在的行相同,因为它应该是一个三角形。因此,您不想再次停在 size
,而是 row
。因为你说打印在你知道你在哪一列之前就完成了,这表明你可能没有首先完全设计你的算法 "on paper."
最好尝试根据变量实际指向的内容来命名变量,而不是随便使用一个字母,例如 "i" 或 "j"。当它们只是为了跟踪有多少次迭代时,通常会使用这些任意变量,但是当您在循环中引用它们时,最好为它们合理命名以提高可读性。当您刚开始时,这一点更为重要,这样您就可以跟踪自己实际在做什么!你可能想考虑这样的事情:
for (int row = 1; row <= size; row++)
{
for (column = 1; column <= row; column++)
{
System.out.print(row);
}
System.out.println();
}
通过这种方式,您还可以在代码中看到您正在打印行号,而不仅仅是一些计数器。
这对我来说可能真的很挑剔,但文本提示通常总是在与提示相同的行上输入,而不是在下一行。因此,与其使用 println()
,不如使用 System.out.print("Enter the size: ");
(另请注意冒号后的 space)。
希望对您有所帮助!
所以我正在努力练习Java。我是初学者。 我有这个练习,它要求我编写一个嵌套的 for 循环。
结果应该是这样的:
Enter the size:4
Triangle is:
1
22
333
4444
Enter the size:6
Triangle is:
1
22
333
4444
55555
666666
这是我的代码:
public static void main(String arg[]){
Scanner scanner = new Scanner(System.in);
System.out.println("Enter the size:");
int size=scanner.nextInt();
System.out.println("Triangle is:");
//add your nested for loop logic here
//start
for(int i = 1; i <= size; i++)
{
System.out.println(i);
for(int j = 1; j < size; j++)
{
}
我正在努力思考它,但我似乎想不出其他方法。 那我需要做什么?
使用以下循环:
for (int i = 1; i <= size; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(i);
}
System.out.println();
}
这将产生:
Enter the size:
4
Triangle is:
1
22
333
4444
当变量 j
从 1
运行到 i
时,内部循环将打印数字 i
、i
次。然后在下一行我们引入一个新行。
除了已经说过的内容之外,我还想提几件事。
在尝试将其实现为代码之前,您应该尝试在脑海中排列您在算法设计中所做的事情。在这种情况下,您实际上需要做什么才能使三角形出现?首先,您需要跟踪您在哪一行,然后您在该行的哪一行。最大行数由用户在
size
中指定,所以你就到此为止。然后对于每一行,您将打印一个字符,该字符也恰好是行号。最大列数与您所在的行相同,因为它应该是一个三角形。因此,您不想再次停在size
,而是row
。因为你说打印在你知道你在哪一列之前就完成了,这表明你可能没有首先完全设计你的算法 "on paper."最好尝试根据变量实际指向的内容来命名变量,而不是随便使用一个字母,例如 "i" 或 "j"。当它们只是为了跟踪有多少次迭代时,通常会使用这些任意变量,但是当您在循环中引用它们时,最好为它们合理命名以提高可读性。当您刚开始时,这一点更为重要,这样您就可以跟踪自己实际在做什么!你可能想考虑这样的事情:
for (int row = 1; row <= size; row++) { for (column = 1; column <= row; column++) { System.out.print(row); } System.out.println(); }
通过这种方式,您还可以在代码中看到您正在打印行号,而不仅仅是一些计数器。
这对我来说可能真的很挑剔,但文本提示通常总是在与提示相同的行上输入,而不是在下一行。因此,与其使用
println()
,不如使用System.out.print("Enter the size: ");
(另请注意冒号后的 space)。
希望对您有所帮助!