一.多重循环的理解
(1)多重循环指一个循环语句的循环体中再包含循环语句,又称嵌套循环。
(2)循环语句内可以嵌套多层循环。
(3)不同的循环语句可以相互嵌套。
语法格式:
while(循环条件1){
循环语句1
while(循环条件2){
循环语句2
}
}
do{
循环体
do{
循环体
}while(循环条件);
}while(循环条件);
for(表达式1;表达式2;表达式3){
循环体
for(表达式1;表达式2;表达式3){
循环体
}
}
while(循环条件1){
循环语句1
for(循环条件2){
循环语句2
}
}
二.多重循环的使用:
各循环可互相嵌套 一般不超过三层
外层循环变量变化一次,内层循环变量要变化一遍
以一个小程序为例如下:最外层循环控制这行数,内层控制着列数
public static void main(String[] args) {
//外层循环控制行数
for(int i =1;i<=6;i++){
//输出每一行前面的“ ”,内层循环控制每一行的列数
for(int j =1;j<=6-i;j++){
System.out.print(" ");
}
//输出每一行的*,内层循环控制每一行的列数
for(int k =1;k<=2*i-1;k++){
System.out.print("*");
}
//输出一行的“ ”和“*”之后要换行
System.out.println();
}
}
三.多重循环例题
1:使用Java实现输出如下图形。
//三角形
//外层循环控制行数
for (int i=1;i<=3;i++){
//内层循环控制三角形左边空格个数
for (int j=1;j<=3-i;j++){
System.out.print(" ");
}
//控制每一行星号个数
for (int k=1;k<=2*i-1;k++){
System.out.print("*");
}
//每一行输出后换行
System.out.println();
}
输出结果:
2:使用Java实现输出如下图形。
//将图形分为赏析俩个梯形
for (int i=1;i<=6;i++){
//打印空格
for (int j=1;j<=6-i;j++){
System.out.print(" ");
}
//打印星号
for (int k=1;k<=4+2*i;k++){
System.out.print("*");
}
//打印完一行后换行
System.out.println();
}
for (int i=1;i<6;i++){
for (int j=1;j<=i;j++){
System.out.print(" ");
}
for (int k=1;k<=16-2*i;k++){
System.out.print("*");
}
System.out.println();
}
运行结果:
3:使用Java实现输出如下图形。
先将其看成上下俩个三角形
之后上半部分先输出左边的空格三角形,
之后直接输出星号,
在输出中间的空格三角形,
最后在输出右边的星号。
下半部分和上半部分使用一样的方法处理。
//空心菱形
//将其看成上下俩个没有底三角形
for (int i=1;i<=9;i++){
//先打印左边空格三角形
for (int j=1;j<=9-i;j++){
System.out.print(" ");
}
//在三角形后打印星号
System.out.print("*");
//之后打印星号内的空格三角形
for (int j=1;j<=2*(i-1)-1;j++){
System.out.print(" ");
}
//第一行已经打印过了星号,一次在第二行之后再开始继续打印星号
if (i!=1){
System.out.print("*");
}
System.out.println();
}
for (int i=1;i<9;i++){
for (int j=1;j<=i;j++){
System.out.print(" ");
}
System.out.print("*");
for (int j=1;j<16-2*i;j++){
System.out.print(" ");
}
if (i!=8){
System.out.print("*");
}
System.out.println();
}
4:使用Java实现输出如下图形。
用逆向思维写这道题。将空格与星号调过来看,可以看成例题一的相似的题目。
之后先输出左边的三角形,
之后在输出中间的空格大三角形,
最后在输出左边的星号三角形
for (int i=1;i<=8;i++){
for (int j=1;j<=9-i;j++){
System.out.print("*");
}
for (int k=1;k<=2*(i-1)-1;k++){
System.out.print(" ");
}
if (i==1){
for (int z=1;z<=7;z++){
System.out.print("*");
}
}else {
for (int j=1;j<=9-i;j++){
System.out.print("*");
}
}
System.out.println();
}