java中for循环和if语句_关于使用Java中的for循环和if语句打印空心菱形的详细分析(也算是通过重新梳理一遍来加深自己的理解吧!)...

啥也别说了,小二,先上代码:

f4190aed8b65462502d8e4382be2d349.png(图一)

如以上代码所示,由于程序的执行顺序是从左至右,由上而下的,所以当我们想要在DOS窗口打印 一个空心菱形如图二所示

5435dfd5e465d82925ddd7ed35a9150f.png(图二)

时:我们可以将其分成上下两部分,

图一中,我们首先创建一个Scanner对象,通过它的nextInt()方法从DOS窗口接收一个由键盘录入的int类型的数值(Scanner类的详细信息请查看JavaAPI)。然后将这个数赋值给total这个变量,即我们想要打印的空心菱形的总行数。

通过total,分别给定上半部分的行数half和下半部分的行数halfMore。

这时,我们分两部分来进行:(以total=9为例)

上半部分:

这个时候,上半部分的行数为3行,首先用一个外层语句来控制要打印的行数,如图一中的⑴行的语句。

这个循环的内部内容:

我们每一次循环即在从左至右,由上而下的打印顺序下每一行要依次打印些什么!

在打印的过程中涉及三个主要要素:行数、空格数、星号数;

一个次要要素:换行。

首先,因为我们让外层循环控制的是“行数”,所以,我们要分别分析空格数和行数、星号数和行数之间的联系:

左边空格数和行数:

第n行    左边空格数an

1      4

2      3

3      2

4      1

可以看出,在行数呈等差递增的时候,左边空格数是呈等差递减的。

即:a1 = 4;

a2 = 3;

a3 = 2;

a4 = 1; 由等差数列的通项公式:an = a1 + (n-1)*d 得:an = 3 + (-1)(n-1) = 3 - n + 1 。

也就是:左边空格数 = 行数 - 第几行 + 1 。

用for循环打印就如图一中的⑵行的代码。

左边的空格打印好了后紧接着就是打印一个星号,再打印中间空格数:

中间空格数和行数:

第n行    中间空格数an

1       0

2       1

3       3

4       5

同求左边空格的做法大致一样,稍微不同的是,除了首项外其余项呈等差递增。

由于我们采用的是for循环,循环初始化条件为1,所以当我们的循环条件为负数时,打印的次数也是0次。

于是我们可以将首项置为-1,则有: an = -1 + (n-1)* 2 = 2 * n - 3 。这就有了图一中的⑶行的代码。

⑷行的判断语句是用来打印除了第一行之外的右边的星号,最后,最外层控制行数的循环每转一次就换一次行。

下半部分:分析思路同上半部分的,就是跟上半部分的相反打印罢了。

最后,一定要牢记,编程时:

思路一定要时刻清晰!

思路一定要时刻清晰!

思路一定要时刻清晰!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值