day04Java-嵌套循环练习(九九乘法)

嵌套循环练习1

需求:请输出一个4行5列的星星(*)图案。
结果:
*****
*****
*****
*****
循环嵌套:就是循环语句的循环体本身是一个循环语句。
通过结果我们知道这样的一个结论:
外循环控制行数
内循环控制列数

代码实现

	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();
		}
	}

结果

*****
*****
*****
*****
-------------
*****
*****
*****
*****
-----------------
*****
*****
*****
*****

嵌套循环练习2

需求:请输出下列的形状
*
**
***
****
*****

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();
		}
	}

嵌套循环练习3

需求:在控制台输出九九乘法表。

首先我们写出九九乘法表:
	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 static void main(String[] args) {
		for (int i = 0; i < 9; i++) {
			System.out.println();
			for (int j = 0; j < i; j++) {
				System.out.print("*");
			}
		}
		System.out.println();
		System.out.println("------------------------------------------------");
		for (int i = 1; i <= 9; i++) {
			System.out.println();
			for (int j = 1; j <= i; j++) {
				System.out.print(j + "*" + i + "=" + (j * i) + "\t");
			}
		}
	}

结果:

*
**
***
****
*****
******
*******
********
------------------------------------------------

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*5=5	2*5=10	3*5=15	4*5=20	5*5=25	
1*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36	
1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49	
1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64	
1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81	
发布了151 篇原创文章 · 获赞 0 · 访问量 1694

猜你喜欢

转载自blog.csdn.net/qq_40332952/article/details/104669195