JavaSE基础知识(3)—流程控制结构
一、顺序结构
1、说明
程序从上往下依次执行,中间没有任何跳转或选择
2、特点
变量必须遵循 “前向引用”
(局部变量必须先声明、赋值,然后再使用!)
二、分支结构(条件)
1、说明
程序从两条或多条路径中,选择一条去执行
2、分类
语法 | 执行顺序 | 注意事项 | |
if结构 |
1、单分支 |
先判断条件是否成立, 如果成立,则执行代码块1.否则跳过if结构,往下执行 |
①条件 的结果只能是boolean类型,形式可以为: |
2、双分支 |
先判断条件是否成立, 如果成立,则执行代码块1.否则执行代码块2 |
||
3、多重分支 |
先判断条件1, 如果成立执行代码块1,否则判断条件2, 如果成立,执行代码块2,依次类推,如果都不成立,则执行代码块n |
||
4、嵌套分支 |
先判断外层条件, 如果成立,则进行代码块,即继续判断内层条件.. |
||
switch结构 | switch(变量){ case 常量值1:代码块1;break; case 常量值2:代码块2;break; ... default:代码块n;break; } |
先得出switch括号中变量的值, 然后依次判断各个case,如果有匹配的,则执行对应的代码块,直到遇见break为止; 如果都不匹配,则执行default中的代码块n,直到遇见break为止 |
①变量的类型 |
3、if和switch的对比★
相同点:都属于分支结构
不同点:
能用switch的,肯定能用if
能用if的,不一定能用switch,必须满足以下要求:
①等值判断
②判断的类型必须为int、byte、short、char、String(jdk1.7)、枚举(jdk1.5)
注意:使用switch结构效率较高!
三、循环结构
1、说明
在满足某个特定条件的基础上,反复执行某段代码的结构
2、四要素
①循环变量初始化
②循环条件
③循环操作
④循环变量更新
3、好处
①提高代码简洁性
②提高代码的维护性和扩展性
4、分类
while
do while
for
jdk5.0之后,多了增强for循环
5、具体实施步骤★
题型一:知道次数
优先考虑用for
1、先搭框架
for(int i=1;i<=次数;i++){执行代码;}
2、分析循环操作
3、检测循环是否具备四要素
题型二:不知道次数
1、先搭框架
while(){
}
2、分析循环操作和循环条件
3、检测循环是否具备四要素
6、三种循环结构详细介绍★
(1)while
语法:
循环变量初始化 ①
while(循环条件){ ②
循环操作 ③
循环变量更新 ④
}
执行顺序:①②③④②③④....直到②不成立为止
(2)do while
语法:
循环变量初始化 ①
do{
循环操作 ③
循环变量更新 ④
}while(循环条件); ②
执行顺序:①③④②③④②③④...直到②不成立为止
(3)for
语法:
① ② ④
for(循环变量初始化;循环条件;循环变量更新){
循环操作③
}
执行顺序:①②③④②③④....直到②不成立为止
7、三种循环结构比较★
相同点:
1、都能解决任何类型的循环题目
2、都具备循环四要素
不同点:
1、语法不同
2、执行顺序不同
while和for 先判断后执行
do while 先执行后判断
3、执行效果不同
如果第一次条件成立,while、do while、for 执行效果相同
如果第一次条件不成立,while、for 执行0次;do while 执行至少一次!
4、执行效率不同
do while 效率最高
5、应用场景不同
知道次数,优先考虑用for
不知道次数,
先判断:while
先执行:do while
8、嵌套循环
说明:一个循环结构中又嵌套了另一个完整的循环结构
注意:如外层循环,执行m次;内层循环,执行n次。 内层循环的循环体最终执行 m*n次
四、跳转结构
1、说明
用于改变正常的程序控制流
2、分类
break
continue
return
3、跳转结构详细介绍
(1)break
特点:一般用于循环或switch中,跳出所在的循环或switch
语法:
场景1:【最常用】
一般搭配if结构放在循环中或直接放在switch的case语句中
场景2:【了解】
直接搭配标签,放在任何代码块中
示例1:
label:if(){
break label;
}
示例2:
label :while(){
while(){
if(){
break label;
}
}
}
注意:break如果不搭配标签,默认跳出的就是所在的最近的switch或一层循环。如果搭配标签,则可以跳出标签指定的代码块
(2)continue
特点:只能用于循环中,结束本次循环,继续下一次循环
语法:
场景1:【最常用】
搭配if结构放在循环中
while(){
if(){
continue;
}
}
场景2:【了解】
label:while(){
while(){
if(){
continue label;
}
}
}
注意:continue如果不搭配标签,默认起作用的就是所在的一层循环。如果搭配标签,则可以跳出标签指定的循环
(3)return
特点:用在方法中,跳出所在的方法
4、跳转结构比较
语法应用场景 | 特点 | |
break | 一般放在循环或switch | 中断所在的结构 |
continue | 只能放在循环 | 结束本次循环,继续下一次 |
return | 用在方法中 | 跳出所在方法 |
JavaSE基础知识(3)—流程控制结构的更多相关文章
- C语言基础知识-程序流程结构
C语言基础知识-程序流程结构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.概述 C语言支持最基本的三种程序运行结构:顺序结构,选择结构,循环结构. 顺序结构:程序按顺序执行, ...
- PHP丨PHP基础知识之流程控制WHILE循环「理论篇」
昨天讲完FOR循环今天来讲讲他的兄弟WHILE循环!进入正题: while是计算机的一种基本循环模式.当满足条件时进入循环,进入循环后,当条件不满足时,跳出循环.while语句的一般表达式为:whil ...
- JavaSE基础知识总结
最近回顾了一下Java的基础知识,决定写成博客梳理一遍,主要是JavaSE部分最基础的知识,适合考前突击,学后回顾,不适合作为初学材料. 简单的列个目录吧: 一.数据类型和运算符 二.流程控制与数组 ...
- JavaSE 基础知识(常识概念 + 基础语法)问答总结/面试题 —— 讲给应届生的 Java 开源知识项目
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...
- javaSE基础知识(走向编程的门口)— 更新完毕
前言:玩儿编程最重要的一点:不要怕麻烦,感觉是在浪费时间: 能动手绝不哔哔:只要脑袋不傻,编程都是"一看就会,一练就废",开始学的时候,就算再基础的东西都建议手敲一遍 要有囫囵吞枣 ...
- PHP基础知识之流程控制的替代语法
PHP 提供了一些流程控制的替代语法,包括 if,while,for,foreach 和 switch. 替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,e ...
- java 基础知识四 流程控制
java 基础知识四 流程控制 Java流程控制包括顺序控制.条件控制和循环控制 顺序控制就是逐条执行 有if和switch两个分支 循环控制就是 又称为回路控制,根据循环初始条件和终结要求,执行 ...
- Go基础系列:流程控制结构
条件判断结构:if else 分支选择结构:switch case 循环结构:for break:退出for或switch结构(以及select) continue:进入下一次for迭代 虽然Go是类 ...
- JavaSE基础知识(2)—变量和运算符
一.变量 1.理解 概念:内存中的一块数据存储空间 2.变量的三要素 数据类型变量名变量值 3.变量的语法和使用步骤★ 步骤1:声明变量(计算机开辟一块空间) 数据类型 变量名;步骤2:为变量赋值(初 ...
随机推荐
- 第2章 Java基本语法(下): 流程控制--项目(记账本)
2-5 程序流程控制 2-5-1 顺序结构 2-5-2 分支语句1:if-else结构 案例 class IfTest1{ public static void main(String[] args) ...
- Vue的理解:Vue.js新手入门指南----转
最近在逛各大网站,论坛,以及像SegmentFault等编程问答社区,发现Vue.js异常火爆,重复性的提问和内容也很多,楼主自己也趁着这个大前端的热潮,着手学习了一段时间的Vue.js,目前用它正在 ...
- Linux之文件(目录)默认权限、特殊权限与隐藏权限
文件默认权限 从Linux之用户组.文件权限详解了解到文件与目录的基本权限管理,文件在创建时如果不指定具体的权限,那么系统会给它分配一个默认的权限,这个默认权限就是umask. vbird@Ubunt ...
- Excel函数之vlookup的用法
Vlookup函数用法: 实例: 要将编号对照表中的图书名称根据两表中的图书编码字段引入 订单明细中. Vlookup函数 参数一:键入一个需要搜索的字段,这里需要通过订单明细中的图书编号在编号对照离 ...
- ubuntu-docker入门到放弃(七)操作系统
操作系统相信很多人都会装,但是当使用docker容器来安装操作系统的时候,还是跟我们平时安装操作系统有很大区别的,我们之前也下载安装过centos系统,你会发现跟我们之前的操作系统相比,很精简,那么我 ...
- ByteToByte64String、Base64StringToBytes
public string ByteToByte64String(byte[] bytes) { return Convert.ToBase64String(bytes); } public byte ...
- Sonar6.7.1配置修改备注
sonarqube-6.7.1\conf\sonar.properties的配置字段 sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useU ...
- vld for memory leak detector (release version)
有没有这样的情况,无法静态的通过启动和退出来查找内存泄露,比如网络游戏,你总不能直接关游戏那玩家怎么办? 现在vld支持release,我们可以动态的找. 1.在release版本使用vld了.< ...
- 关于想通过ros的dstnat实现公网IP nat 公网IP的情况
转发群里大神的“苏州-海豚在跳舞”的图 理论上客户机收到2.2.2.2过来的包应该直接丢弃.因为它并没有给2.2.2.2发过包.这里不知道如果在2.2.2.2上做 src-nat伪装成1.1.1.1回 ...
- psi
purchase 采购sales 销售inventory 库存 outstock/instock/inventory taking outstock/instock/inventory 出库 入库 盘 ...