【视频+图文】Java经典基础练习题(二)输出9*9乘法口诀表

203 阅读2分钟

一、视频讲解

点击这里即可去B站观看

二、思路分析

Q1: 拿到题目之后,该如何去分析题目并一步步向能解决题目的代码去靠近呢? Q2: 我的思路是:

  • 先根据题目写出一些例子(有的题目也会给出例子)
  • 根据写出(给出)的例子找到规律
  • 根据规律写好代码
  • 运行后若有错误通过debug找到错误并更改
  • 直到程序可以正确得出题目的结果

那么针对本题:

(一)我们可以先写出部分的9*9乘法表

1*1=1
2*1=22*2=4
3*1=33*2=33*3=9
4*1=44*2=8*3=124*4=16
5*1=55*2=105*3=155*4=205*5=25

(二)根据我们写出的部分9*9乘法表我们可以发现:

  1. 在相乘的过程中行数和列数是一直发生变化的
  2. 所以我们可以定义两个变量i,j来分别代表行数i和列数j

4

(三)我们看下图的行数和列数变化,可得到规律:j<=i

在这里插入图片描述

(四)因为行数i和j都是一直变化的,且结合我们得到的规律 所以我们选用双重for循环来解决这道题。

三、代码+详解+结果

代码:

package Exercise;

public class ChengFa {
//	题目:输出9*9乘法口诀。
	public static void main(String[] args) {
		int i = 0;// i为行数
		int j = 0;// j为列数
		for (i = 1; i < 10; i++) {
			for (j = 1; j <= i; j++) {// 这里需用到我们总结的规律j<=i
				System.out.print(i + "*" + j + "=" + i * j + "    ");
			}
			System.out.println();
		}
	}
}

详解:

以i=3为例

i = 3 3<10 j=1 1<=3 执行输出语句

System.out.print(i + "*" + j + "=" + i * j + "    ");  

输出 3 * 1=3 j++ ,j = 2

================================================================= i = 3 3<10 j=2 2<=3 执行输出语句

System.out.print(i + "*" + j + "=" + i * j + "    ");  

输出3*2=6 j++, j = 3

================================================================= i = 3 3<10 j=3 3<=1 执行输出语句

System.out.print(i + "*" + j + "=" + i * j + "    ");  

输出3*3=9 j++, j = 4

=================================================================

j=4,不满足j<=i条件,所以退出第二层for循环执行输出语句进行换行

 System.out.println(); 

================================================================= i++ i = 4 再进行下一次循环。