循环嵌套
循环里面可以嵌套循环,今天我们就用双层for循环打印图形和做出杨辉三角。打印图形时,把图形看做行,列。外层循环来控制行,内层控制列。如果是有星星还有空格的类型。模板就是
外层 for(int i = 0;i<=行数;i++)
内层 for(int j = 0 ;j<=列数;j++) 列数 = 空格数 + 星星数
if(i<空格数){ 空格数 = 用行数变量表示出空格数
输出空格; 星星数 = 也用行数变量表示出来
}else{
输出星星;
}
public class TestPrint{
public static void main(String[]args){
//等腰三角形
for(int i=1;i<=5;i++){
for(int j=0;j<=2*i-1+5-i;j++){
if(j<=5-i){
System.out.print(" ");
}
else{
System.out.print("*");
}
}
System.out.println();
}
//平行四边形
for(int i=1;i<=5;i++){
for(int j=0;j<=10-i;j++){
if(j<=5-i){
System.out.print(" ");
}
else{
System.out.print("*");
}
}
System.out.println();
}
//九九乘法表
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
if(j<=i)
System.out.print(j+"*"+i+"="+j*i+"\t");
}
System.out.println();
}
}
}
杨辉三角
仔细观察杨辉三角,你会发现,杨辉三角的每一行的第一个数字和最后一个数字都是1.中间的数是头上的数和头上的前一个数相加的和。这样我们就可以结合打印图形和杨辉三角的规律打印出杨辉三角。把杨辉三角的数放在二维数组中,只需要对二维数组进行处理即可。二维数组可以看做一维数组里面放一个一维数组。
import java.util.*;
public class yangHui{
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入row");
int row=sc.nextInt();
//初始化一个二维数组
int [][] arr=new int[row][];
//分配内存并赋值
for(int i=0;i<row;i++){
//设置内存大小,二维数组中的一维数组分配内存
arr[i]=new int[i+1];
for(int j=0;j<arr[i].length;j++){
if(j==0||j==arr[i].length-1){//第一个数和最后一个数为1
arr[i][j]=1;
}else{
arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
}
}
}
System.out.println("杨辉三角为");
//输出arr
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
总结
杨辉三角的每一列的数是每一行的行数加1,因为从0开始的。跟一维数组动态分配内存,第一个一维数组存放第二一位数组的内存地址。这样就可以输出杨辉三角。