流程控制:
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每条语句的执行流程。而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能。
顺序结构;
分支结构(if语句、switch语句);
循环结构(for循环、while以及do while循环)。
顺序结构:
没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
分支结构:
分支结构,分为单分支和多分支;
单分支:
if (关系表达式) { 语句体; }
执行流程:
①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体
③如果关系表达式的值为false就不执行语句体
④继续执行后面的语句内容
多分支——if语句:
//格式一if (关系表达式) { 语句体1; } else { 语句体2; } //格式二if (关系表达式1) { 语句体1; } elseif (关系表达式2) { 语句体2; } …else { 语句体n+1; }
执行流程以格式一为例:
①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体1
③如果关系表达式的值为false就执行语句体2
④继续执行后面的语句内容
switch结构:
switch (表达式) { case值1: 语句体1; break; case值2: 语句体2; break; ... default: 语句体n+1; break; }
执行流程:
①首先计算出表达式的值
②其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。
③最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
循环结构:
while循环:
初始化语句; while (条件判断语句) { 循环体语句; 条件控制语句; }
执行流程:
①执行初始化语句
②执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
③执行循环体语句
④执行条件控制语句
⑤回到②继续
do while循环:
初始化语句; while (条件判断语句) { 循环体语句; 条件控制语句; }
执行流程:
① 执行初始化语句
② 执行循环体语句
③ 执行条件控制语句
④ 执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
⑤ 回到②继续
while循环和do while循环的区别:while循环会先判断条件是否成立然后再决定是否进行循环;do while循环是无论判断条件是否成立先进行一次循环,如果条件不成立则终止循环。
for循环:
for (初始化语句;条件判断语句;条件控制语句) { 循环体语句;}
执行流程:
①执行初始化语句
②执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
③执行循环体语句
④执行条件控制语句
⑤回到②继续
for循环和while循环的区别:for循环一般用在知道循环次数的情况下;而while循环则用在不知道循环次数的情况下。
for循环案例求水仙花数
什么是水仙花数?
水仙花数,指的是一个三位数,个位、十位、百位的数字立方和等于本身
例如153 3*3*3 + 5*5*5 + 1*1*1 = 153
publicclassForTest04 { publicstaticvoidmain(String[] args) { //三位数其实是告诉了我们范围。//输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束for(inti=100; i<1000; i++) { //在计算之前获取三位数中每个位上的值intge=i%10; intshi=i/10%10; intbai=i/10/10%10; //判定条件是将三位数中的每个数值取出来,计算立方和后与原始数字比较是否相等if(i==ge*ge*ge+shi*shi*shi+bai*bai*bai) { //输出满足条件的数字就是水仙花数System.out.println(i); } } } }