所以我正在尝试练习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++)
{
}
我试图绕过它,但我似乎无法想到另一种方式。 那么我需要做什么?
答案 0 :(得分:4)
使用以下循环:
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
内部循环将打印数字i
,i
次,因为变量j
从1
到i
。然后在下一行我们引入一个新行。
答案 1 :(得分:0)
除了已经说过的内容之外,我还想提几件事。
在尝试将其实现到代码中之前,您应该尝试在脑海中排列您在算法设计中所做的事情。在这种情况下,您实际需要做什么才能使三角形显示出来?首先,您需要跟踪您所在的行,然后跟踪您在该行中的哪一行。用户在size
中指定了最大行数,因此您将停在那里。然后,对于每一行,您将打印一个字符,这也恰好是行号。最大列数与您所在的行相同,因为它应该是一个三角形。因此,您需要size
而不是再次停留在row
。由于您甚至在知道自己所依据的列之前就已经完成了打印,这表明您可能没有先在纸上完全设计算法。&#34;
最好在他们实际指向的变量之后尝试命名变量,而不仅仅是一个任意字母,例如&#34; i&#34;或&#34; j&#34;。当他们只是为了跟踪有多少次迭代时,使用这些任意变量通常很常见,但是当你在循环中引用它们时,有一个好处就是它们的可读性合理命名。当您刚刚开始时,这更为重要,因此您可以跟踪您实际在做什么!你可能想要考虑这样的事情:
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: ");
可能会更好(也请注意冒号后面的空格)。
希望这有帮助!