文章目录
- Day 3
Day 3
2019年3月30日。
这是我学习Java的第三天。
这一天,我学到了以下的知识。
程序的执行流程
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。
也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。
而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
程序的执行流程分为三类:
- 顺序结构:代码从上往下一行一行去执行。
- 选择结构:也被称为分支结构。
选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。 - 循环结构:循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
Scanner
Java提供的类,可以同来获取从键盘中输入的数据。
使用步骤分为以下三步:
- 导入程序包:
import java.util.Scanner;
- 创建键盘录入对象:
Scanner a = new Scanner(System.in);
- 录入输入的数据:
int b = a.nextInt();
if(选择结构)
if语句是条件选择语句,具有以下三种格式。
格式一:if
格式二:if-else
格式三:if-else if-else
if和三元表达式的区别:
- 三元表达式写出来的,if-else一定写的出来。
- if-else写出来的,三元表达式不一定写出来。
switch case(选择结构)
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
格式如下:
面试题:byte可以作为switch的表达式吗?
long可以作为switch的表达式吗?
String可以作为switch的表达式吗?
switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
所以,byte、String均可以作为switch的表达式,而long不可以作为switch的表达式。
for(循环结构)
for循环执行的次数是在执行前就确定的。
格式如下:
for循环的经典算法(水仙花数,星星三角形,九九乘法表)
- 水仙花数
所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
举例:153就是一个水仙花数。
153 = 111 + 555 + 333 = 1 + 125 + 27 = 153
代码如下:
运行效果:
- 星星三角形
用*绘制一个直角三角形(5x5)。
代码如下:
运行效果:
- 九九乘法表
绘制一个九九乘法表。
代码如下:
运行效果:
while(循环结构)
while是最基本的循环。
格式为:
do while(循环结构)
对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。
三种循环结构的区别
- do…while循环至少执行一次循环体。
而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。 - A: 如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。不知道用for循环。
因为变量及早的从内存中消失,可以提高内存的使用效率。
B:建议优先考虑for循环,然后是while循环 ,最后是do…while循环。
break
中断循环。可以用在Switch语句,也可以用在for,while循环中,用来结束循环。若离开了使用场景(switch,for,while)则没有意义。如果有循环嵌套,break影响的是最近的循环。
例题:试判断输出结果
解:①结果:i=1, j=0
i=2, j=0
i=2, j=1
②(1)第一次外层for循环:i=0,因为0<3,所以执行内层的for循环。
第一次内层for循环:i=0,j=0,因为0 == 0,所以结束循环。
(2)第二次外层for循环:i=1,因为1<3,所以执行内层的for循环。
第一次内层for循环:i=1,j=0,因为1!=0,所以输出i=1,j=0。
第二次内层for循环:i=1,j=1,因为1 == 0,所以结束循环。
(3)第三次外层for循环:i=2,因为2<3,所以执行内层的for循环。
第一次内层for循环:i=2,j=0,因为2!=0,所以输出i=2,j=0。
第二次内层for循环:i=2,j=1,因为2!=1,所以输出i=2,j=1。
第三次内层for循环:i=2,j=2,因为2==2,所以结束循环。
(4)第四次外层for循环:i=3,因为3=3,所以结束循环。
continue
用在循环场景当中,可以跳过部分循环而不终端,离开循环场景后无意义。
例题:试判断输出结果
解:①结果:i=0, j=1
i=0, j=2
i=1, j=0
i=1, j=2
i=2, j=0
i=2, j=1
②(1)第一次外层for循环:i=0,因为0<3,所以执行内层的for循环。
第一次内层for循环:i=0,j=0,因为0 == 0,所以跳过此次循环。
第二次内层for循环:i=0,j=1,因为0!=1,所以输出i=0,j=1。
第三次内层for循环:i=0,j=2,因为0!=2,所以输出i=0,j=2。
(2)第二次外层for循环:i=1,因为1<3,所以执行内层的for循环。
第一次内层for循环:i=1,j=0,因为1!=0,所以输出i=1,j=0。
第二次内层for循环:i=1,j=1,因为1 == 1,所以跳过此次循环。
第三次内层for循环:i=1,j=2,因为1!=2,所以输出i=1,j=2。
(3)第三次外层for循环:i=2,因为2<3,所以执行内层的for循环。
第一次内层for循环:i=2,j=0,因为2!=0,所以输出i=2,j=0。
第二次内层for循环:i=2,j=1,因为2!=1,所以输出i=2,j=1。
第三次内层for循环:i=2,j=2,因为2==2,所以跳过此次循环。
(4)第四次外层for循环:i=3,因为3=3,所以结束循环。