以下有2段代码,本人找了很久都找不到它们的不同之处,但是运行结果却不一样,求解答
代码1:
package interesting;
import java.util.Scanner;
public class Re
{
public static void main(String[] args)
{
int i,j,k,n;
Scanner input=new Scanner(System.in);
System.out.print("请输入金字塔层数:");
n=input.nextInt();
for(i=1;i<=n;i++)
{
for(j=1;j<=n-1;j++)
System.out.print(" ");
for(k=1;k<=2*i-1;k++)
System.out.printf("*");
System.out.printf("\n");
}
}
}
运行结果:
请输入金字塔层数:5
*
***
*****
*******
*********
-----------------------------------------------------------
代码2:
package interesting;
import java.util.Scanner;
public class Re1
{
public static void main(String[] args)
{
int i,j,k,n;
Scanner input=new Scanner(System.in);
System.out.print("请输入金字塔层数:");
n=input.nextInt();
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
System.out.print(" ");
for(k=1;k<=2*i-1;k++)
System.out.printf("*");
System.out.printf("\n");
}
}
}
运行结果:
请输入金字塔层数:5
*
***
*****
*******
*********
2段代码好像一样,但是第一段代码为什么输出不了金字塔?
------解决思路----------------------
for(j=1;j<=n-i;j++) 一个是n-i,一个是n-1,能一样么
------解决思路----------------------
你在输出打印 “ ” 语句的for循环中的表达是不一样,前一个是就 j<=n-1,后一个是 j <=n-i。。。

------解决思路----------------------
代码1中。循环的第二层循环:for(j=1;j<=n-1;j++)
代码2中。循环的第二层循环: for(j=1;j<=n-i;j++)
1中n减去的是1
2中n减去的是 i