Java语言基础(六)之 —— 循环嵌套

来源:互联网 发布:c程序设计经典编程题 编辑:程序博客网 时间:2024/06/12 01:47
/*    需求:在控制台输出九九乘法表。     首先我们写出九九乘法表:        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'    换行*/public class ForForDemo01 {    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();        }    }}

/*    需求:请输出一个4行5列的星星(*)图案。    结果:        *****        *****        *****        *****           循环嵌套:就是循环语句的循环体本身是一个循环语句。    通过结果我们知道这样的一个结论:        外循环控制行数        内循环控制列数*/public class ForForDemo02 {    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();        }    }}

/*    需求:请输出下列的形状        *        **        ***        ****        ******/public class ForForDemo03 {    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();        }    }}
0 0
原创粉丝点击