题目及代码示例
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int i = 0;
int j = 0;
int[][] yanghui=new int[n][n];
for(i=0;i<n;i++){
for(j=0;j<=i;j++){
if(j==0 || j==i){
yanghui[i][j]=1;
}else{
yanghui[i][j]=yanghui[i-1][j-1]+yanghui[i-1][j];
}
}
}
for(i=0;i<n;i++){
for(j=0;j<=i;j++){
System.out.printf("%-4d",yanghui[i][j]);
}
System.out.println();
}
}
}
最简单易懂的新手须知
本段代码知识点在于对for循环的应用以及二维数组的使用,同时将if/else语句嵌套在for循环中,并且在输出阶段对格式进行了规范,以下是详解:
1.for循环
在Java语言中,有三种循环语句,分别是for语句,while语句以及do-while语句,其中for语句的使用在代码编写的过程中最为常见。
语法格式:for(表达式1;表达式2;表达式3)
{
语句;
}
表达式1:给循环变量初始值
表达式2:给出循环条件
(当表达式2的值为"真(true)"时,执行循环体,再执行表达式3改变变量的值)
(当表达式2的值为"假(false)"时,跳出for循环,执行for循环后面的语句)
表达式3:给出循环变化的规律
例子:
int i=0;
for(i=0;i<10;i++)
{
System.out.println("%d",i);
}
在这个for循环中,i=0是初始条件,i<10是判断条件,当i的大小满足这个条件时,执行for循环,即执行一次,i就加1,直到i=10时,不符合表达式2的条件,跳出循环,因此,运行结果如下:
0
1
2
3
4
5
6
7
8
9
上面是一个for循环的例子,在日常写代码时,我们常常会用到for循环的嵌套使用,就如实例代码中的一段:
for(i=0;i<n;i++){
for(j=0;j<=i;j++){
System.out.printf("%-4d",yanghui[i][j]);
}
System.out.println();
}
在本段代码中我们使用了for循环的嵌套(注:i和j在整体代码开始时已被定义为整型int,n为杨辉三角的行数),下面我将对循环顺序作简短解释:
第一次循环:i=0,j=0,打印yanghui[0][0]的值,j+1,此时i=0,j=1,不满足j<=i,则跳出第二层循环,但此时依旧在第一层循环中,因此执行System.out.println();进行换行操作,至此,第一层for循环也结束了,i+1,进入第二次循环。
第二次循环:i=1,j=0,打印yanghui[1][0]的值,j+1,此时i=1,j=1,依旧满足j<=i,则再次进行第二层循环,打印yanghui[1][1]的值,j+1,此时i=1,j=2,不满足j<=i,则跳出第二层循环,执行System.out.println();进行换行操作,至此,第一层for循环再次结束了,i+1,进入第三次循环。
以此类推
2.二维数组的使用
在了解二维数组之前,我们需要知道一维数组如何去定义,声明一维数组变量的语法格式有以下两种格式:
数据类型[ ] 数据变量;
数据类型 数据变量[ ];
例:int[ ] a;
int a[ ];
这两种格式都是正确的,当然,如果我们想声明多个一维数组可以使用一下格式:
例:int[ ] c,d,e;
int c[ ],d[ ],e[ ];
声明过后,我们需要为数组分配空间,这里要用到new申请数组所需的内存单元,语法格式如下:
数组变量=new 数据类型[长度];
例:a=new int[6];
我们可以把以上两步结合,例如:
int[ ] a=new int[6];
如果我们想获取数组的长度,可以使用以下格式:
数组变量.length
新手须知!!!
int a[3]意为这个一维数组中有三个元素,但第一个元素为a[0],第二个元素为a[1],第三个元素为a[2],记住,没有a[3]!!!
我们可以对新数组赋初值,例如:
int a[4]={1,2,3},其中,第四个元素(a[3])我们没有赋初值,但系统还是会分配一个初值给它,即0,不同的数组类型系统所分配的初值也会不同
数据类型 | 初始化值 | 数据类型 | 初始化值 |
byte,short,int,long | 0 | char | '\u0000' |
float | 0.0f | boolean | false |
double | 0.0 | 引用数据类型 | null |
现在我们开始介绍二维数组
(1)二维数组的声明
int a[ ][ ];
a=new int[3][3]; //三行三列的存储单元
即int a[ ][ ]=new int[3][3];
也可int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
a[0][0]=1 | a[0][1]=2 | a[0][2]=3 |
a[1][0]=4 | a[1][1]=5 | a[1][2]=6 |
a[2][0]=7 | a[2][1]=8 | a[2][2]=9 |
(2)获取数组的长度
a.length;//获取二维数组的长度,即二维数组的行数
a[0].length;//获取一维数组的长度,即二维数组的列数
3.输出格式
当我们想输出一个格式化的数时,可以遵循一下方法:
"%.xf"(x为整数)——输出一个保留x为小数的数值
"%yf"(y为整数)——输出一个宽度为y的数,若长度不足,则补上空格,右对齐,如"%7f"可将1.2格式化为"(四个空格)1.2"
"%-yf"(y为整数)——输出一个宽度为y的数,若长度不足,则补上空格,左对齐,如"%-7f"可将1.2格式化为"1.2(四个空格)"
"%+d":如"%+111"将输出为"+111"
"%,d":如"%,1110000"将输出为"1,110,000"
当组合使用时,如System.out.printf("%-4.1f",0.16);输出为"0.2(一个空格)"文章来源:https://www.toymoban.com/news/detail-844711.html
以上就是本题的重要知识点,如果把这些知识点看懂了,那么上面的代码读起来可以说就是易如反掌了!
后言
本博客只是我作为一个Java初学者对目前所学的知识的最浅显的理解,暂时无法用专业语言表达出来,只能依照我自己的理解对学习过程做一个记录,以便以后复习使用,若有大佬路过请多多提出宝贵意见,指出我的错误,当然要是能给一些指导就更好啦(doge)!文章来源地址https://www.toymoban.com/news/detail-844711.html
到了这里,关于郑州轻工业大学-程序设计技术(Java)-PTA实验1(7-5)-打印杨辉三角的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!