从零开始学Java【10】
从零开始学Java【10】
学习视频:https://www.bilibili.com/video/BV12J41137hu?p=43
增强for循环

这里的要求是先做个简单的了解,后面学数组的时候再详细讲,先跟着敲代码
直接上代码

第二种for就是增强数组
break和continue

- break用于退出整个循环

break强制退出for循环,不再执行循环中剩余的语句,然后程序继续往下运行
- continue用于跳出单次循环,而继续执行循环剩余语句

程序中while循环让i累加,并且输出i,在中间加个if语句,当i是10的倍数的时候,换行并且执行continue,即结束当前单次循环,然后继续下一次循环。
goto关键字
Java中没有goto关键字,取而代之的是outer,这部分不需要掌握,了解一下就行

i为要挑选的数,j为要挑选的数的因数,把要挑选的数再和因数取模,看看是否整除,如果不能整除,则是要找的质数,然后输出整个质数,然后继续下一个,如果不能整除,则执行if里面的语句:continue outer,意思为终结本次循环,然后由第二个for循环的outer那里,跳转到第一个for循环那里,像任意门一样到外面,然后继续执行第一个for循环。
所以outer的作用就是从outer标签,跳转到outer:标签
这部分内容不在学习范围之内,只是在Java里面有这么一种标签的用法。
以上就是全部知识内容,接下来是练习题。
打印三角形
思路:

首先打印出1部分,再打印出2部分,然后最后打印出3部分
打印第一部分

其中:i代表的是行数,总共是五行。j代表的是每一行中打印的东西个数,比如第一行打印5个,第二行打印4个,以此类推。当内嵌循环执行完之后,执行换行操作System.out.println();
分析需求:(i为行数)
i=1时,输出5个
i=2时,输出4个
i=3时,输出3个
i=4时,输出2个
i=5时,输出1个
所以可以初步推出,该for循环是j为递减的一个循环,所以可以令j初始值为5,通过比较i,来输出个数
(判断布尔式:j ? i)
i=1时,j=5,输出5个
i=2时,j=4,输出4个
i=3时,j=3,输出3个
i=4时,j=2,输出2个
i=5时,j=1,输出1个
找到i和j的关系,可以知道,是:j >= i。
所以第一部分代码如下:
for (int j = 5; j >= i; j--)//第一部分
打印第二部分
那么,把上面那些”*“全部替换成空白,因为我们要打印出三角形,现在开始打印第二部分

分析需求:(i为行数)
i=1时,输出1个
i=2时,输出2个
i=3时,输出3个
i=4时,输出4个
i=5时,输出5个
所以可以初步推出,该for循环是j为递增的一个循环,所以可以令j初始值为1,通过比较i,来输出个数
(判断布尔式:j ? i)
i=1时,j=1,输出1个
i=2时,j=2,输出2个
i=3时,j=3,输出3个
i=4时,j=4,输出4个
i=5时,j=5,输出5个
找到i和j的关系,可以知道,是:j <= i。
所以第二部分代码如下:
for (int j = 1; j <= i; j++)//第二部分
另:观察可得,两个第一部分收尾相连可以组成一个长方形,所以第一部分和第二部分代码刚好相反:
for (int j = 5; j >= i; j--)//第一部分
for (int j = 1; j <= i; j++)//第二部分
打印第三部分

第三部分为:
分析需求:
i=1时,不输出
i=2时,输出1个
i=3时,输出2个
i=4时,输出3个
i=5时,输出4个
所以可以初步推出,该for循环是j为递增的一个循环,所以可以令j初始值为0,通过比较i,来输出个数
(判断布尔式:j ? i)
i=1时,j=0,输出0个
i=2时,j=1,输出1个
i=3时,j=2,输出2个
i=4时,j=3,输出3个
i=5时,j=4,输出4个
找到i和j的关系,可以知道,是:j < i。
所以第三部分代码如下:
for (int j = 1; j < i; j++)
总结解体顺序:
①首先确定大循环,这里的大循环是i,i循环五次,即有五行。
②确定每一行输出的东西。这一步就要分成好几步来完成了,这里对三角形分成三大块

通过分别对三块东西来进行设计,从而输出整个三角形,分析如下:
- 列出对应行数以及对应需求,比如第三部分中,在第一行时:i=1时,不输出...以此类推
- 通过观察输出的个数变化,来求得j是自增还是自减。比如第三部分中,输出个数由0到5,可以推出j的变化是自增的
- 通过比较i和输出个数(其实输出个数就是j的值),来确定最终的布尔判定式。比如第三部分中,通过找到i和j的关系,从而确定了j和i总是缺1位,所以是用小于号。
参考文档:https://www.runoob.com/w3cnote/java-print-the-triangle.html
Debug
其实以上的程序很难懂,还有一种方法,那就是打断点。

在此处打断点,找到小虫子符号,运行debug:


那么程序就会像这样卡住,只需要按上面的箭头,就会一步步进行


在输出这里也能看到一步步的结果

浙公网安备 33010602011771号