JavaSE基础第3章流程控制结构

时间:2022-09-08 12:12:05

3 流程控制结构

3.1顺序结构

说明:程序从上往下执行

Java中定义成员变量时采用合法的前向引用。如: 

public class Test{

        int num1 = 12;

        int num2 = num1 + 2;

}

错误形式: 

public class Test{

       int num2 = num1 + 2; 

       int num1 = 12;

3.2分支结构

3.2.1  if结构

1、单分支

语法: 

if(条件表达式){

执行代码块;

}

结构图:

JavaSE基础第3章流程控制结构

2、双分支

语法:

 

if(条件表达式){

执行代码块1;

}

else{

执行代码块2;

}

 


结构图:

JavaSE基础第3章流程控制结构

3、多重分支

语法:

if(条件表达式1){

执行代码块1;

      }

      else if (条件表达式2){

执行代码块2;

      }

       ……

       else{

执行代码块n;

       }

 

结构图:

JavaSE基础第3章流程控制结构

3.2.2  switch结构

1、语法:

switch(表达式){

case 常量1:

语句1;

break;

case 常量2:

语句2;

break;

… …

case 常量N:

语句N;

break;

default:

语句;

break;

 }

 

2、规则

变量的类型 只能是int、byte、short、char、String(jdk1.7)、枚举(jdk1.5)

case后的常量值不能重复

case后不可以是变量

break可以省略,但可能影响效果

default可以省略,位置也可以提前,但可能影响效果

3、执行顺序

先得出switch括号中变量的值,然后依次判断各个case,如果有匹配的,则执行对应的代码块,直到遇见break为止;如果都不匹配,则执行default中的代码块n,直到遇见break为止

3.3 循环结构

3.3.1  说明

在满足某个特定条件的基础上,反复执行某段代码的结构

3.3.2 四要素

1、循环变量初始化

2、循环条件

3、循环操作

4、循环变量更新

 

3.3.3 好处

1、提高代码的简洁性

2、提高代码的维护性和扩展性

3.3.4 分类

while

do while

for

jdk5.0之后,多了增强for循环(foreach

3.3.5 落地步骤

题型一:知道次数

优先考虑用for

1、先搭框架

for(int i=1;i<=次数;i++){

}

2、分析循环操作

3、检测循环是否具备四要素 

题型二:不知道次数

1、先搭框架

while(){

}

2、分析循环操作和循环条件

3、检测循环是否具备四要素 

3.3.6三种循环结构的详细介绍

1、while

语法:

循环变量初始化 

while(循环条件){  

循环操作 

循环变量更新 

}

执行顺序:....直到不成立为止

2、do while

循环变量初始化 

do{

循环操作 

循环变量更新 

}while(循环条件);

执行顺序:...直到不成立为止

3、for

          

for(循环变量初始化;循环条件;循环变量更新){

循环操作

}

执行顺序:....直到不成立为止 

3.3.7 三种循环结构大pk

 

相同点:

1、都能解决任何类型的循环题目

2、都具备循环四要素

 

不同点:

1、语法不同

2、执行顺序不同

whilefor 先判断后执行

do while   先执行后判断

3、执行效果不同

如果第一次条件成立,whiledo whilefor 执行效果相同

如果第一次条件不成立,whilefor 执行0次;do while 执行至少一次!

4、执行效率不同

do while 效率最高

5、应用场景不同

知道次数,优先考虑用for

不知道次数,

先判断:while

先执行:do while 

3.3.8 嵌套循环

说明:一个循环结构中又嵌套了另一个完整的循环结构

注意:如外层循环,执行m次;内层循环,执行n次。 内层循环的循环体最终执行 m*n

经典案例:九九乘法表

JavaSE基础第3章流程控制结构

3.4 跳转结构

3.4.1 break

说明:一般用在switch或循环中,跳出所在的switch或循环结构。

语法:

while(循环条件){

   if(条件){

     break;

  }

}

特点:

只能跳出所在的switch或一层循环,如果想跳出外层循环,需要添加label标签使用。

3.4.2 continue

说明:只能用于循环中,结束本次循环,继续下一次循环

语法:

while(循环条件){

if(条件){

continue;

}

}

特点:continue如果不搭配标签,默认起作用的就是所在的一层循环。如果搭配标签,则可以跳出标签指定的循环

3.4.1 return

说明:跳出所在的方法

【方法章节中会详细讲解】

项目1:家庭记账软件

模拟实现一个基于文本界面的《家庭记账软件》

掌握初步的编程技巧和调试技巧 

主要涉及以下知识点: 

1、局部变量和基本数据类型

2、循环语句 

3、分支语句 

4、简单的屏幕输出格式控制 

 

项目采用分级菜单方式。

 

1、主菜单如下: 

-----------------家庭收支记账软件-----------------

                   1 收支明细

                   2 登记收入

                   3 登记支出

                   4 退    

                   请选择(1-4):_

2、登记收入

-----------------家庭收支记账软件-----------------

                   1 收支明细

                   2 登记收入

                   3 登记支出

                   4 退    出

                   请选择(1-4)2

本次收入金额:1000

本次收入说明:劳务费_

3、登记支出

-----------------家庭收支记账软件-----------------

                   1 收支明细

                   2 登记收入

                   3 登记支出

                   4 退    出

                   请选择(1-4)3

本次支出金额:800

本次支出说明:物业费_

4、收支明细

-----------------家庭收支记账软件-----------------

                   1 收支明细

                   2 登记收入

                   3 登记支出

                   4 退    出

                   请选择(1-4)1

-----------------当前收支明细记录-----------------

收支    账户金额        收支金额            

收入    11000           1000            劳务费

支出    10200           800             物业费

--------------------------------------------------

• 提示:明细表格的对齐,可以简单使用制表符‘\t’来实现 

本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源,欢迎大家关注尚硅谷公众号(atguigu)了解更多。