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码是美国提出的标准信息 ...
随机推荐
- centos7.6安装python3.7
1.安装python3.7后,需要: yum install libffi-devel -y 然后再到python源码目录再make install 重新编译一下. 否则pip安装一些包时会安装不上, ...
- 链表-C语言实现
链式存储线性表的结构体: typedef int ElemType; //元素类型 typedef struct Node //链表结构体 { ElemType date; //链表结点数据域 str ...
- 转:关于java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication的解决
在这个控制板中,出现了这个问题 java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication 虽然明显知道是 ...
- Maven学习整理
1. window系统中安装Maven 2. 解决使用代理联网时无法下载jar包 3. 配置本地仓库 4. 处理本地仓库和中央仓库都没有依赖的jar包的情况
- springcloud集成kafka
项目名称:布控预警 水平拆分出来的项目,作为一个单独的可以对外提供服务的项目 项目设计:springcloud,可以集成各个不同平台的一个作为对外提供的微服务项目 项目功能:实现各个平台和本平台之间的 ...
- C 可变参数函数的本质
C语言支持定义可变参数的函数,方法是在函数的参数列表最后加上 " ... ",代表变长的参数列表,例如: void Func(int num, ...) { } 需要注意 “... ...
- hibernate查询方式(四)
---恢复内容开始--- 1.mysql中的多表联合查询 ****/*内连接查询*/ 只显示两个表有关联的记录 //第一种 SELECT * FROM Class c ,Student s WHER ...
- Mybatis整合spring详细教程(适合小白童鞋)
目录 1.整合思路 2.整合需要的jar包 3.整合的步骤 4.Dao的开发的两种实现方式 6.Dao的开发的实现方式总结图 @ Mybatis整合spring其实就是SSM框架中SM的整合集成. 1 ...
- [TimLinux] JavaScript 模态框可拖动功能实现——节流版
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- HDU1429
Ignatius再次被魔王抓走了(搞不懂他咋这么讨魔王喜欢)…… 这次魔王汲取了上次的教训,把Ignatius关在一个n*m的地牢里,并在地牢的某些地方安装了带锁的门,钥匙藏在地牢另外的某些地方.刚开 ...