循环嵌套

核心代码:

/*
需求:请输出一个4行5列的星星(*)图案。
结果:
    *****
    *****
    *****
    *****
    
循环嵌套:就是循环语句的循环体本身是一个循环语句。

通过结果我们知道这样的一个结论:
    外循环控制行数
    内循环控制列数
*/
class ForForDemo {
public static void main(String[] args) {
    //原始做法
    System.out.println("*****");
    System.out.println("*****");
    System.out.println("*****");
    System.out.println("*****");
    System.out.println("-------------");
    
    //虽然可以完成需求,但是不是很好
    //如果是多行多列就会比较麻烦
    //所以我们准备改进
    //如何改进呢?
    //我先考虑如何实现一行*的问题
    //System.out.println("*****");
    //我们要想的是如何实现一次输出一颗*的问题
    //System.out.println("*");
    //System.out.println("*");
    //现在虽然可以一次一颗*,但是却换行了,我要求不能换行,怎么办呢?
    //输出语句的另一种格式:System.out.print(); 这个是不带换行的
    //System.out.print("*");
    //System.out.print("*");
    //System.out.print("*");
    //System.out.print("*");
    //System.out.print("*");
    //如果我要在一行上打出多颗*,比较麻烦,而代码是重复的,所以我决定用循环改进
    for(int x=0; x<5; x++) {
        System.out.print("*");
    }
    //我们可以通过空的输出语句实现换行:System.out.println();
    System.out.println();
    
    //既然我可以打出一行,我就可以打出第二行
    for(int x=0; x<5; x++) {
        System.out.print("*");
    }
    //我们可以通过空的输出语句实现换行:System.out.println();
    System.out.println();

    //同理打出第三行,第四行
    for(int x=0; x<5; x++) {
        System.out.print("*");
    }
    //我们可以通过空的输出语句实现换行:System.out.println();
    System.out.println();
    
    //既然我可以打出一行,我就可以打出第二行
    for(int x=0; x<5; x++) {
        System.out.print("*");
    }
    //我们可以通过空的输出语句实现换行:System.out.println();
    System.out.println();
    System.out.println("-----------------");
    //同样的代码出现了4次,说明我们程序写的不好,用循环改进
    for(int y=0; y<4; y++) {
        for(int x=0; x<5; x++) {
            System.out.print("*");
        }
        //我们可以通过空的输出语句实现换行:System.out.println();
        System.out.println();
        }
    }
}

//

/*
需求:请输出下列的形状
    *
    **
    ***
    ****
    *****
*/
class ForForDemo2 {
public static void main(String[] args) {
    //通过简单的观察,我们看到这是一个行是5,列数是变化的形状
    //我们先打印出一个5行5列的形状
    for(int x=0; x<5; x++) {
        for(int y=0; y<5; y++) {
            System.out.print("*");
        }
        System.out.println();
    }
    
    System.out.println("--------------");
    
    //我们实现了一个5行5列的形状
    //但是这不是我们想要的
    //我们要的是列数变化的
    //列数是如何变化的呢?
    //第一行:1列    y=0,y<=0,y++
    //第二行:2列    y=0,y<=1,y++
    //第三行:3列    y=0,y<=2,y++
    //第四行:4列    y=0,y<=3,y++
    //第五行:5列    y=0,y<=4,y++
    //在看外循环x的变化,恰好就是x=0,1,2,3,4
    //所以这个最终版的程序就是如下
    for(int x=0; x<5; x++) {
        for(int y=0; y<=x; y++) {
            System.out.print("*");
        }
        System.out.println();
    }
 }
}

//

/*
需求:在控制台输出九九乘法表。

首先我们写出九九乘法表:
    1*1=1
    1*2=2   2*2=4
    1*3=3   2*3=6   3*3=9
    1*4=4   2*4=8   3*4=12  4*4=16
    ...
    1*9=9   2*9=18  3*9=27  ...
    
我们先把这个九九乘法表看出是这样的一个形状:
    *
    **
    ***
    ****
    *****
    ******
    *******
    ********
    *********
    
注意:
    '\x' x表示任意,这种做法叫转移字符。
    
    '\t'    tab键的位置
    '\r'    回车
    '\n'    换行
*/
class ForForDemo3 {
public static void main(String[] args) {
    for(int x=0; x<9; x++) {
        for(int y=0; y<=x; y++) {
            System.out.print("*");
        }
        System.out.println();
    }
    System.out.println("--------------");
    //为了使用数据,我们从1开始
    for(int x=1; x<=9; x++) {
        for(int y=1; y<=x; y++) {
            System.out.print(y+"*"+x+"="+y*x+"\t");
        }
        System.out.println();
    }
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值