Java流程控制:实践-打印矩阵及进阶:打印输出99乘法表

经过前段时间的流程控制学习,我们了解了Java常用的流程控制语句有if、switch、for、do…while语句。在这里,我们进行综合应用,以加深理解。
个人建议,不要着急看示例代码,先代入性的思考一下,尽量自己动手编写代码。
举个栗子:
我们需要在控制台打印多行星号*。具体效果为:

*******
*******
*******

任何一个大的程序都是由基础的小程序组合出来的。
我们不妨将多行先换成一行,仅打印一行星号。具体代码如下:

public class Demo {

	public static void main(String[] args) {
		
		for (int i = 0; i < 7; i++) {
			System.out.print("*");
		}
}
}

在这里,我们利用了一个for循环,连续循环7遍输出一个不换行的星号完成我们的需求。
那么接下来,便对其进行改造,以完成我们最初的需求打印多行,使用循环的嵌套(在循环的内部再进行一次循环),具体代码如下:

public class Demo {

	public static void main(String[] args) {
		
		for (int i = 0; i < 3; i++) {
			for (int j=0;j<7;j++)
				System.out.print("*");
		System.out.println();
		}
}
}

在这里,我们是利用内层for循环输出7个星号,外层for循环再将内层for循环执行3遍,并每次执行后进行强制换行。


那么根据这种原理,我们来设计一个能打印输出9乘9的矩阵,以下是示例代码:

public class Demo {

	public static void main(String[] args) {
		
		for (int i = 1; i < 10; i++) {
			for (int j=1;j<10;j++)
				System.out.print(i*j+"\t");
		System.out.println();
		}
}
}

将这段代码在IDE中运行,观察运行结果。
Java流程控制:实践-打印矩阵及进阶:打印输出99乘法表_第1张图片
观察这个矩阵,这是一个对称矩阵,我们画一条斜向右下的对角线,所有的数值都以其为对称轴对称。对于这个矩阵,我们将它划成两部分,上半部分称为上三角,下面的称为下三角。之间的斜线叫做对角线


根据打印矩阵的结构,我们来再次改进,输出下三角结果:

public class Demo {

	public static void main(String[] args) {
		
		for (int i = 1; i < 10; i++) {
			for (int j=1;j<i+1;j++)
				System.out.print(i*j+"\t");
		System.out.println();
		}
}
}

在这里,我们将内循环的循环次数限制与外循环相关联以达到我们仅输出一个下三角的需求

终极进化:下三角9*9乘法表:

public class Demo {

	public static void main(String[] args) {
		
		for (int i = 1; i < 10; i++) {
			for (int j=1;j<i+1;j++)
				System.out.print(i+"*"+j+"="+i*j+"\t");
		System.out.println();
		}
}
}

小问号?
那么上三角呢?
同理小小改动一下就好了

public class Demo {

	public static void main(String[] args) {
		
		for (int i = 1; i < 10; i++) {
			for (int k=0;k<i-1;k++)
				System.out.print("\t");
			for (int j=i;j<10;j++)
				System.out.print(i+"*"+j+"="+i*j+"\t");
			System.out.println();
		}
}
}

当然,你也可以把它改进成加法表,减法表,自己有想法并做出来才算真的掌握了


就到这里啦。
转载请备注出处。
如果觉得有帮助,不妨点赞关注评论来套三连?

你可能感兴趣的:(Java学习)