Java基础语法02-流程控制-if-switch-for-while
流程控制语句
顺序结构
任何编程语言中最常见的程序结构就是顺序结构。顺序结构就是程序从上到下逐行地执行,中间没有任何判断和跳转。
分支结构
if(条件表达式){
语句体;
}
执行流程
首先判断条件表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体体
if(关系表达式) {
语句体1;
}else {
语句体2;
}
if (判断条件1) {
执行语句1;
} else if (判断条件2) {
执行语句2;
}
...
}else if (判断条件n) {
执行语句n;
} else {
执行语句n+1;
}
if..else嵌套
在if的语句块中,或者是在else语句块中, 又包含了另外一个条件判断(可以是单分支、双分支、多分支)
执行的特点:
(1)如果是嵌套在if语句块中的 只有当外部的if条件满足,才会去判断内部的条件
(2)如果是嵌套在else语句块中的 只有当外部的if条件不满足,进入else后,才会去判断内部的条件
if()
else //当条执行语句只有一句的时候我们可以省略花括号
switch选择结构
switch(表达式){
case 常量值1:
语句块1;
【break;】
case 常量值2:
语句块2;
【break;】
。。。
【default:
语句块n+1;
【break;】
}
(1)入口
①当switch(表达式)的值与case后面的某个常量值匹配,就从这个case进入;
②当switch(表达式)的值与case后面的所有常量值都不匹配,寻找default分支进入;不管default在哪里
(2)一旦从“入口”进入switch,就会顺序往下执行,直到遇到“出口”,即可能发生贯穿
(3)出口
①自然出口:遇到了switch的结束}
②中断出口:遇到了break等
注意:
(1)switch(表达式)的值的类型,只能是:4种基本数据类型(byte,short,int,char),两种引用数据类型(JDK1.5之后枚举、JDK1.7之后String)
(2)case后面必须是常量值,而且不能重复
循环语句
不论哪一种编程语言,都会提供两种基本的流程控制结构:分支结构和循环结构。其中分支结构用于实现根据条件来选择性地执行某段代码,循环结构则用于实现根据循环条件重复执行某段代码。
for循环
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要通过修改循环变量使得循环判断条件为false,从而结束循环,否则循环将一直执行下去,形成死循环。
for(初始化语句①; 循环条件语句②; 迭代语句④){
循环体语句③
}
for(;;){
循环体语句块; //如果循环体中没有跳出循环体的语句,那么就是死循环
}
(1)for(;;)中的两个;是不能多也不能少
(2)循环条件必须是boolean类型
(3)如果循环条件语句②省略的话,就默认为循环条件成立
执行流程:
第一步:执行初始化语句①,完成循环变量的初始化;
第二步:执行循环条件语句②,看循环条件语句的值是true,还是false;
如果是true,执行第三步;
如果是false,循环语句中止,循环不再执行。
第三步:执行循环体语句③
第四步:执行迭代语句④,针对循环变量重新赋值
第五步:根据循环变量的新值,重新从第二步开始再执行一遍
while循环
while (循环条件语句①) {
循环体语句②;
}
while(true){
循环体语句; //如果此时循环体中没有跳出循环的语句,也是死循环
}
while(循环条件)中循环条件必须是boolean类型
执行流程:
第一步:执行循环条件语句①,看循环条件语句的值是true,还是false;
如果是true,执行第二步;
如果是false,循环语句中止,循环不再执行。
第二步:执行循环体语句②;
第三步:循环体语句执行完后,重新从第一步开始再执行一遍
2、while循环语句扩展格式:
初始化语句①;
while (循环条件语句②) {
循环体语句③;
迭代语句④;
}
执行流程:
第一步:执行初始化语句①,完成循环变量的初始化;
第二步:执行循环条件语句②,看循环条件语句的值是true,还是false;
如果是true,执行第三步;
如果是false,循环语句中止,循环不再执行。
第三步:执行循环体语句③
第四步:执行迭代语句④,针对循环变量重新赋值
第五步:根据循环变量的新值,重新从第二步开始再执行一遍
do...while循环
do {
循环体语句①;
} while (循环条件语句②);
(1)while(循环条件)中循环条件必须是boolean类型
(2)do{}while();最后有一个分号
(3)do...while结构的循环体语句是至少会执行一次,这个和for和while是不一样的
执行流程:
第一步:执行循环体语句①;
第二步:执行循环条件语句②,看循环条件语句的值是true,还是false;
如果是true,执行第三步;
如果是false,循环语句终止,循环不再执行。
第三步:循环条件语句执行完后,重新从第一步开始再执行一遍
2、do...while循环语句扩展格式:
初始化语句①
do {
循环体语句②;
迭代语句③;
} while (循环条件语句④);
执行流程:
第一步:执行初始化语句①,完成循环变量的初始化;
第二步:执行循环体语句②;
第三步:执行迭代语句③,针对循环变量重新赋值;
第四步:执行循环条件语句④,看循环条件语句的值是true,还是false;
如果是true,根据循环变量的新值,重新从第二步开始再执行一遍;
如果是false,循环语句中止,循环不再执行。
循环语句的区别
从循环次数角度分析
do...while循环至少执行一次循环体语句
for和while循环先循环条件语句是否成立,然后决定是否执行循环体,至少执行零次循环体语句
从循环变量的生命周期角度分析
for循环的循环变量在for()中声明的,在循环语句结束后,不可以被访问;
while和do...while循环的循环变量因为在外面声明的,所以while和do...while结束后可以被继续使用的;
如何选择
遍历有明显的循环次数(范围)的需求,选择for循环
遍历没有明显的循环次数(范围)的需求,循环while循环
如果循环体语句块至少执行一次,可以考虑使用do...while循环
本质上:三种循环之间是可以互相转换的,都能实现循环的功能
三种循环结构都具有四要素:
(1)循环变量的初始化表达式
(2)循环条件
(3)循环变量的修改的迭代表达式
(4)循环体语句块
控制语句 break
使用场景:终止switch或者当前循环,离开使用场景的存在是没有意义的
continue
使用场景:结束本次循环,继续下一次的循环
嵌套循环
所谓嵌套循环,是指一个循环的循环体是另一个循环。比如for循环里面还有一个for循环,就是嵌套循环。总共的循环次数=外循环次数*内循环次数。当然可以是三种循环任意互相嵌套。
for(初始化语句①; 循环条件语句②; 迭代语句⑦) {
for(初始化语句③; 循环条件语句④; 迭代语句⑥) {
循环体语句⑤;
}
}
for(;;) //当语句块只有一句或其if,for语句时,{}可以省略,也称复合语句。但是不推荐
语句块;
Java基础语法02-流程控制-if-switch-for-while的更多相关文章
- Java基础语法02——流程控制
流程控制:顺序结构.分支结构(if-else.switch-case).循环结构(for.while.do-while)
- Java基础语法(4)-流程控制
title: Java基础语法(4)-流程控制 blog: CSDN data: Java学习路线及视频 1.程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定 ...
- Java基础语法与流程控制
Java基础语法与流程控制 跟着狂神学Java的第二天O(∩_∩)O~,养成一个总结的习惯 志同道合的小伙伴可以一起学习狂神的视频 本节地址:https://www.kuangstudy.com/co ...
- Unit04: JavaScript 概述 、 JavaScript 基础语法 、 流程控制
Unit04: JavaScript 概述 . JavaScript 基础语法 . 流程控制 my.js function f3() { alert("唐胜伟"); } demo1 ...
- 020 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 14 变量与常量 知识总结
020 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 14 变量与常量 知识总结 本文知识点:变量与常量 知识总结 Java中的标识符 Java中的关键字 目前常 ...
- 019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例
019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例 本文知识点:Java中的数据类型转换案例 学习视频有误,导致没法写文,文章内容 ...
- 018 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 12 数据类型转换的基本概念
018 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 12 数据类型转换的基本概念 本文知识点:Java中的数据类型转换 类型转换 类型转换分类 2类,分别是: ...
- 017 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 11 变量综合案例
017 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 11 变量综合案例 本文知识点:变量 相同类型的变量可以一次同时定义多个 例:可以一行代码同时定义2个变量x ...
- 016 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 10 布尔类型和字符串的字面值
016 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 10 布尔类型和字符串的字面值 本文知识点:字面值 关于字面值的概念,需要注意:很多地方,我们可能就把字面值 ...
- 015 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 09 Unicode编码
015 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 09 Unicode编码 本文知识点:Unicode编码以及字符如何表示? ASCII码是美国提出的标准信息 ...
随机推荐
- 2019-2020-9 20199317 《Linux内核原理与分析》第九周作业
第8章 进程的切换和系统的一般执行过程 1 进程调度的时机 1.1 硬终端与软中断 进程调度的时机都与中断相关,中断有很多种,都是程序执行过程中的强制性转移,转移到操作系统内核相应的处理程序.中 ...
- 程序员修神之路--打通Docker镜像发布容器运行流程
菜菜哥,我看了一下docker相关的内容,但是还是有点迷糊 还有哪不明白呢? 如果我想用docker实现所谓的云原生,我的项目该怎么发布呢? 这还是要详细介绍一下docker了 Docker 是一个开 ...
- PyTorch官方教程中文版
首先呈上链接:http://pytorch123.com/ PyTorch是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序.它主要由Facebookd的人工智能小组开发,不 ...
- es6 babel 安装以及使用
1,安装好node(需要使用npm包管理工具) 2,在本地项目路径下npm init,格式化成功后会在项目下生成一个配置文件package.json 3,本地安装bable npm install - ...
- MyBatis框架的基本配置
MyBatis的基本配置文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE config ...
- IPhone下json的解析 NSJSONSerialization
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming Lan ...
- ELK filebeat的安装
安装参考官方文档: https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-installation.html 注意事项: Fr ...
- Zabbix通过与微信、钉钉整合实现实时告警
abbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信.钉钉作为主要的告警方式,这样可以及时有效的把告警信息推送到接收人,方便告警 ...
- git避免每次输入密码
生成公匙 在仓库所在目录输入 ssh-keygen -t rsa -C "yourname@sina.com" 其中yourname@sina.com是注册邮箱.可以在%HOME% ...
- Sqlite 的管理工具SQLite
SQLite 的管理工具 SQLite Administrator 下载链接 : https://sqliteadmin.orbmu2k.de/ 下载后是一个免安装的程序文件,直接运行就可以了,可以选 ...