流程控制语句

顺序结构

任何编程语言中最常见的程序结构就是顺序结构。顺序结构就是程序从上到下逐行地执行,中间没有任何判断和跳转。

分支结构

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的更多相关文章

  1. Java基础语法02——流程控制

    流程控制:顺序结构.分支结构(if-else.switch-case).循环结构(for.while.do-while)

  2. Java基础语法(4)-流程控制

    title: Java基础语法(4)-流程控制 blog: CSDN data: Java学习路线及视频 1.程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定 ...

  3. Java基础语法与流程控制

    Java基础语法与流程控制 跟着狂神学Java的第二天O(∩_∩)O~,养成一个总结的习惯 志同道合的小伙伴可以一起学习狂神的视频 本节地址:https://www.kuangstudy.com/co ...

  4. Unit04: JavaScript 概述 、 JavaScript 基础语法 、 流程控制

    Unit04: JavaScript 概述 . JavaScript 基础语法 . 流程控制 my.js function f3() { alert("唐胜伟"); } demo1 ...

  5. 020 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 14 变量与常量 知识总结

    020 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 14 变量与常量 知识总结 本文知识点:变量与常量 知识总结 Java中的标识符 Java中的关键字 目前常 ...

  6. 019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例

    019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例 本文知识点:Java中的数据类型转换案例 学习视频有误,导致没法写文,文章内容 ...

  7. 018 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 12 数据类型转换的基本概念

    018 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 12 数据类型转换的基本概念 本文知识点:Java中的数据类型转换 类型转换 类型转换分类 2类,分别是: ...

  8. 017 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 11 变量综合案例

    017 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 11 变量综合案例 本文知识点:变量 相同类型的变量可以一次同时定义多个 例:可以一行代码同时定义2个变量x ...

  9. 016 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 10 布尔类型和字符串的字面值

    016 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 10 布尔类型和字符串的字面值 本文知识点:字面值 关于字面值的概念,需要注意:很多地方,我们可能就把字面值 ...

  10. 015 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 09 Unicode编码

    015 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 09 Unicode编码 本文知识点:Unicode编码以及字符如何表示? ASCII码是美国提出的标准信息 ...

随机推荐

  1. MVC WebApi 返回字符串

    [HttpGet] public HttpResponseMessage GetWebConfigValue(string key) { var response = Request.CreateRe ...

  2. js点击历史记录

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  3. (h,v) represent (horizontal,vertical)

    函数名h,v  代表 行和列 (horizontal,vertical) numpy 中 hstack 表示横向拼接两个行数相同的数组 In [42]: np.hstack((arr3,arr4)) ...

  4. Spring Cloud第五篇 | 服务熔断Hystrix

    ​ 本文是Spring Cloud专栏的第五篇文章,了解前四篇文章内容有助于更好的理解本文: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring Clo ...

  5. react-native 跳转到ios/android 权限设置界面

    目录 ios android 1.在android/app/src/main/java/com/<projectname>文件夹下创建opensettings文件夹 2.在opensett ...

  6. [TimLinux] docker CentOS7入门——服务(2)

    1. 服务含义 分布式应用中,应用的不同部分即称为“服务”,视频网站是一个分布式应用,包含有:数据的存储,视频的转码,前端展示等部分,对应的这些部分即称为相应的服务.docker平台中,定义.运行和扩 ...

  7. Ceph 集群搭建

    1.Ceph部署 1.1 Ceph 安装前准备,环境与拓扑图如下: 主机名 外网IP 内网IP 安装组件 磁盘块 c720181 172.22.69.84 192.168.20.181 ceph-de ...

  8. ES6语法中的class、extends与super的原理

    class 首先, 在JavaScript中, class类是一种函数 class User {    constructor(name) { this.name = name; }    sayHi ...

  9. Python3 类与对象之王者荣耀对战小游戏

    王者荣耀对战小游戏 # 定义英雄: 亚瑟 class Arthur: hero_type = 'Tank' def __init__(self, attack_value=164, armor=98, ...

  10. 【Web技术】314- 前端组件设计原则

    点击上方"前端自习课"关注,学习起来~ 译者:@没有好名字了译文:https://github.com/lightningminers/article/issues/36,http ...