打印出第一列
package com.kuang.struct;
public class ForDemo04 {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {//初始值要为1,要等于9
System.out.println(1+"*"+i+"="+(1*i));
}
}
}
接下来由题意可知需要把1也改成变量,可以再用for循环包裹起来
for (int j = 1; j <= 9; j++) {
for (int i = 1; i <= 9; i++) {//初始值要为1,要等于9
System.out.println(j+"*"+i+"="+(j*i));
}
}
运行结果每一个都乘到了9,所以要把重复项都去掉
由图片可知,每次都要小1
要把for (int i = 1; i <= 9; i++)的9,改成j,去掉了重复项
最后调整样式,改成
for (int j = 1; j <= 9; j++) {
for (int i = 1; i <= j; i++) {//初始值要为1,要等于9
System.out.print(j+"*"+i+"="+(j*i)+"\t");
}
System.out.println();
}
打印九九乘法表
package com.kuang.struct;
public class ForDemo04 {
public static void main(String[] args) {
for (int j = 1; j <= 9; j++) {
for (int i = 1; i <= j; i++) {//初始值要为1,要等于9
System.out.print(i+"*"+j+"="+(i*j)+"\t");
}
System.out.println();
}
}
}
步骤
- 我们先打印第一列,这个大家应该都会
- 我们把固定的1再用一个循环包起来
- 去掉重复项,i<=j
- 调整样式
个人理解(解析)
- 假如j=7,则执行for下包含的for循环
因为要去掉重复项所以i<=j,因为j=7,所以根据i<=j要循环七次,每循环一次输出一次数据和横向制表符,执行完这个for循环以后,执行 System.out.println();换行,然后进入下一次循环
方法2
样式
里面有九行九列,打印多行多列用双重for循环,外层循环用来控制打印的行数,内层循环用来控制打印列数
package com.kuang.struct;
public class Test2 {
public static void main(String[] args) {
//使用外层for循环用于控制打印的行数
//使用内层控制列数
for (int i = 1; i <= 9; i++) {
for(int j =1; j <=9; j++){
System.out.print(i+"*"+j+"="+i*j+" ");
}//根据循环可知等sout输出这一行后,再换行
System.out.println();
}
}
}
由这行代码可以输出:
由乘法表可知:第一行一列,第二行两列,第三行三列…列数与当前行的行数相等,所以j<=i
package com.kuang.struct;
public class Test2 {
public static void main(String[] args) {
//使用外层for循环用于控制打印的行数
//使用内层控制列数
for (int i = 1; i <= 9; i++) {
for(int j =1; j <=i; j++){
System.out.print(j+"*"+i+"="+i*j+" ");
}//根据循环可知等sout输出这一行后,再换行
System.out.println();
}
}
}