#java#打印九九乘法表三种方式

要求按照逐行逐列打印九九乘法表
效果如:
在这里插入图片描述

  1. 方法一:使用两重for循环就可以
    不多说,贴代码:
		for(int i=1;i<10;i++) {
			for(int j=1;j<=i;j++) {
				System.out.print(i+"*"+j+"="+i*j+"\t");
			}
			System.out.print("\n");
		}
  1. 方法二:定义两个变量,但是步进语句只变化一个变量,代码如下
		for(int i=1,j=1;i<10&&j<10;i++) {
				System.out.print(i+"*"+j+"="+i*j+"\t");
				if(i==j) {
					i=0;
					j++;
					System.out.print("\n");
				}
		}

这里面需要注意在循环条件那里还需要对j的大小进行控制,不然会打印1*10行(可以测试一下,去掉条件j<10)。
这个方法的思想个人理解为,从数据本身的特点入手,每一行的乘法式里,第二个数字是相同的,第一个数字递增。那么只需要对第一个数字进行++运算。那么如何控制换行?是通过两个数字的关系,当两个数字相等的时候,就该换行了。所以在循环体中有一个if判断。并且每一行中的第一个数字都是从1开始的,所以需要每次换行时对第一个数字“复位”,由于有i++操作,所以复位值为0而不是1.

—嘤嘤嘤…(嘤嘤怪上线)这种方法是老师上课讲过的一种方法,我也很好奇这种思路是怎么想到的T.T哭泣)以上解析就是知道答案之后的强行解释⑧ 有大佬解答一下么 [渴望.jpg]

方法三:格式化输出…

–好吧。。。曾经的笔记我已经看不懂了,咱们江湖再见!(如果以后我变强(秃)了还能想起这事儿,我就回来补上)如果有大佬知道这种怎么弄,求指教!!!

		for (int i = 1, j = 1; j < 10; i = (i == j) ? (++j/j) : (++i)) {
			System.out.printf("%d*%d=%2d%s", i, j, i * j, (i == j ? '\n': ' ' ));
		}

我来了!!!事实证明,笔记记错了算啥 头硬就行!经过调试得到了这个格式化输出的方式。思路也比较简单,跟方法二有点像,又有不同。方法三只是把方法二中的if判断后面的该到了打印语句以及步进语句中。个人感觉这种方式还是少用⑧(……毕竟用大家都比较熟悉的方式比较容易理解)
但是不妨碍拓展思维咯

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值