天天看点

java通过for语法输出九九乘法表

    1. 首先定义for语句的初始值,判定循环条件以及迭代;
    初始值应当为1;乘法表最大数值为9,所以判定条件是a小于等于9;每完成一个循环a会加1;
    for (int a = 1 ; a <= 9; a++){
        System.out.println(1 + "*" + a + "=" + a*1);
        }      
    在第一个循环当中,a以a=1的身份参与进了运算,即此时输出的结果是1*1=1,完成第一次循环后a会先加1(a++)再判定,判断符合条件后再次进入循环体,输出结果是1 * 2 = 2;一直循环至a=9,输出的结果是1 * 9 = 9
    java通过for语法输出九九乘法表
    此处也可以理解为:先将九九乘法表的第一列输出出来。
    1. 此时的1*a中,因为a会从1循环到9,所以才会生成以上乘法表的第一列,1是定死的。那么,如果1本身也成为了一个可以循环的变量,在1计算完从1 * 1到 1 * 9 的计算之后,前者循环至2 ,然后在进行从2 * 2到2 * 9 的循环计算,以此类推,直到9 * 9,这是否可行呢?
    我们再定义一个for循环,初始值同样为1;乘法表最大数值为9,所以判定条件b同样小于等于9;每完成一个循环b会加1;
    for (int b = 1 ; b<=9 ; b++) {
        for (int a = 1; a <= 9; a++) {
            System.out.println(b + "*" + a + "=" + b * a);
        }
    }      

    我们将”b循环“嵌套在“a循环”上,同时,将本来a循环内的 1 * a 中的 “1” 替换成 “b”。

    修改之后的循环是,b以等于1的身份参与到 a循环里,然后开始了类似上一步的循环:开始输出 1 * 1 = 1 ; 1 * 2 = 2...... 1 * 9 = 9;当本轮a循环结束后, b的值会加1(b++);也就是2;经过判定条件 b<= 9的“确认”后,再次进入a循环开始输出2 * 1 = 2; 2*2 = 4 ; ...... 2 * 9 = 18 ;本轮a循环结束后, b的值会再次加1;也就是3;以此类推,直至循环至 9 * 9 = 81,b循环与a循环均循环结束。

    java通过for语法输出九九乘法表
    java通过for语法输出九九乘法表
    java通过for语法输出九九乘法表

    但很明显, 输出的乘法出现了重复,在乘法表中,第二个乘数始终不大于第一个乘数,也就是在我们的语法里,a应该小于等于 b。

    所以,我们将a循环 的判定条件修改为 a <= b

    修改前:

    java通过for语法输出九九乘法表
    修改后:
    for (int b = 1 ; b<=9 ; b++) {
        for (int a = 1; a <= b; a++) {
            System.out.println(b + "*" + a + "=" + b * a);
        }
    }      
    此时的循环是,b以等于1的身份参与到 a循环里,输出 1 * 1 = 1 ;但因为a<=b,a+1的结果无法通过判定条件,所以本轮a循环结束;当本轮a循环结束后, b的值会加1(b++);也就是2;经过判定条件 b<= 9的“确认”后,再次进入a循环开始输出2 * 1 = 2; 2*2 = 4 ,而后本轮a循环再次结束;b再次加一等于3,而后3 * 1 =3...... ;以此类推,直至循环至 9 * 9 = 81,b循环与a循环均循环结束。
    java通过for语法输出九九乘法表
    java通过for语法输出九九乘法表
    1. 至此,九九乘法表的所有计算已经全部输出,只剩下最后的修饰了。
    先将输出语句的println中的ln去掉,改为横向输出
    for (int b = 1 ; b<=9 ; b++) {
        for (int a = 1; a <= b; a++) {
            System.out.print(b + "*" + a + "=" + b * a);
        }
    }      
    java通过for语法输出九九乘法表
    再在循环体内后加一个空格的转义字符,使每个乘法间加以区分
    for (int b = 1 ; b<=9 ; b++) {
        for (int a = 1; a <= b; a++) {
            System.out.print(b + "*" + a + "=" + b * a + "\t");
        }
    }      
    java通过for语法输出九九乘法表
    再使每结束一次a循环就换一次行,换行的方法是在b循环语句内a循环语句后加上一个空的println输出语句
    for (int b = 1 ; b<=9 ; b++) {
        for (int a = 1; a <= b; a++) {
            System.out.print(b + "*" + a + "=" + b * a + "\t");
        }
        System.out.println();
    }      
    java通过for语法输出九九乘法表
    for (int b = 1 ; b<=9 ; b++) {
        for (int a = 1; a <= b; a++) {
            System.out.print(a + "*" + b + "=" + b * a + "\t");
        }
        System.out.println();
    }