循环嵌套
定义
就是循环语句中的循环体语句本身又是一个循环语句。
案例一 打印三行五列*
/*
我要在控制台上输入一个由*符号组成的图形
*****
*****
*****
*/
class Demo{
public static void main(String[] args){
for(int i = 1; i <= 3; i++){ //外层循环 行数
for(int j = 1;j <= 5; j++){ //内层循环 列数
System.out.print("*"); //内层打印5个*
}
System.out.println(); //内层循环一次结束后换行
}
}
}
案例二 打印直角三角形
/*
我要用*在控制台上输出一个直角三角形
*
**
***
****
*****
分析:
我们看到了一个5行列数是变化的图案
我们可以先打印出5行5列的*图案
*/
class ZhiJiao{
public static void main(String[] args){
for(int i = 1; i <= 5; i++){ //行数
for(int j = 1; j <= i;j++){ //列数(j<=i)
System.out.print("*");
}
System.out.println();
}
}
}
案例三 打印99乘法表
/*
打印99乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
....................
*/
class ChengFaBiao{
public static void main(String[] args){
for(int i = 1; i <= 9; i++){
for(int j = 1; j <= i; j++){
int k = i * j;
System.out.print(j+"*"+i+"="+k+"\t"); //\t下个制表位(Tab)
}
System.out.println();
}
}
}
案例四 打印等腰三角形
/*
等腰三角形
*
***
*****
*******
*********
技巧:空格和*分开考虑
*/
class DengYao{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("你想打印高为几的等腰三角形:");
int row = sc.nextInt(); //键盘输入行数
for(int i = 1; i <= row; i++){ //外层循环 行数
for(int j = 1; j <= row-i; j++){ //空格打印次数 4 3 2 1
System.out.print(" ");
}
for(int k = 1; k <= 2*i-1; k++){ //*打印次数 1 3 5 7 9
System.out.print("*");
}
System.out.println();
}
}
}
案例五 打印倒置三角形
class DaoSanJiao{
public static void main(String[] args){
//----------------------------------------------------------------
/*
打印倒置三角形
*****
****
***
**
*
*/
Scanner sc = new Scanner(System.in);
System.out.println("你想打印高为几的三角形:");
int row = sc.nextInt(); //键盘输入行数
for(int i = 1; i <= row; i++){ //外层循环 5
for (int j = 1; j <= row+1-i; j++){ //内存循环 5 4 3 2 1
System.out.print("*");
}
System.out.println();
}
}
}
- 案例六 打印菱形
class LingXing{
public static void main(String[] args){
//打印菱形
for(int i = 1; i <= 5; i++){ //i 1 2 3 4 i
for(int j = 1; j <= 5 - i; j++){ //空格 4 3 2 1 5-i
System.out.print(" ");
}
for(int k = 1; k <= 2*i-1; k++){ //* 1 3 5 7 9 2*i-1
System.out.print("*");
}
System.out.println();
}
for(int i = 1; i <= 4; i++){ //i 1 2 3 4 i
for(int j = 1; j <= i; j++){ //空格 1 2 3 4 i
System.out.print(" ");
}
for(int k = 1; k <= 2*(5-i)-1; k++){ //* 7 5 3 1 2*(5-i)-1
System.out.print("*");
}
System.out.println();
}
}
}
class LingXing{
public static void main(String[] args){
//打印菱形
for(int i = 1; i <= 5; i++){
for(int j = 1; j <= 5 - i; j++){
System.out.print(" ");
}
for(int k = 1; k <= i; k++){
System.out.print("* ");
}
System.out.println();
}
for(int i = 1; i <= 5; i++){
for(int j = 1; j <= i; j++){
System.out.print(" ");
}
for(int k = 1; k <= 5 - i; k++){
System.out.print("* ");
}
System.out.println();
}
}
}