流程控制语句

流程控制,顾名思义在程序流程中进行控制操作。其实对于流程控制,大多数人在高中的数学中就见到过,只不过那个时候叫做“流程图”。如图,

Java中的流程控制语句按结构分为:顺序结构、选择结构、循环结构(不分先后顺序)。

循环结构:循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件改为false,从而结束循环,否则循环将一直执行下去,形成死循环

*. 循环语句的组成:

  • 初始化语句:

    • 一条或者多条语句,这些语句完成一些初始化操作。
  • 判断条件语句:
    • 这是一个boolean 表达式,这个表达式能决定是否执行循环体。
  • 循环体语句:
    • 这个部分是循环体语句,也就是我们要多次做的事情。
  • 控制条件语句:
    • 这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。

Java提供的三种循环语句:

for                 while               do…while

模块化讲解

1.顺序结构:

从上到下依次顺序

选择结构(if语句):

if语句格式1: if(关系表达式){语句体}

执行流程:a. 首先计算关系表达式的值,看是true或者false

b. 如果是true就执行语句体

c. 如果是false就不执行语句体

if语句格式2:if(关系表达式){语句体1}else{语句体2}

执行流程:a. 首先判断关系表达式看其结果是true或者false

b. 如果是true就执行语句体1

c. 如果是false就执行语句体2

if语句格式1/2(主体代码):

int score = 85;
if(score > 90){
    System.out.println("奖励一个苹果");
}else{
    System.out.println("奖励一本五年高考三年模拟");
}

解析:该段代码的含义是,定义int型变量score并赋值85,进入if判断语句,首先对关系表达式(score>90)进行计算,如果score大于90那么输出"奖励一个苹果",否则输出"奖励一本五年高考三年模拟"。因为85<90,结果为false,进入下一个语句体并打印结果

运行结果:"奖励一本五年高考三年模拟"

if语句格式3:if(关系表达式1){语句体1}else if(关系表达式2){语句体2}else{语句体n}

执行流程:a. 首先判断关系表达式看其结果是true或者false

b. 如果是true就执行语句体1

c. 如果是false,就继续计算关系表达式2的值,看其结果是true或者false

d.如果是false就继续计算表达式3的是,依次类推

注:格式3一般是在需要多重判断的情况下使用

if语句格式3(主体代码):

int score = 85;if(score > 90){System.out.println("奖励一个苹果");}else if(score > 70){System.out.println("奖励一块橡皮");}else{System.out.println("奖励一本五年高考三年模拟");}

解析:该段代码的含义是,定义int型变量score并赋值85,进入if判断语句,首先对关系表达式1(score > 90)进行计算,如果 score 值大于90,则输出“奖励一个苹果”,否则进入关系表达式2(score > 70)进行计算,如果score 是介于 70--90 之间,则输出“奖励一块橡皮”,如果成绩小于等于 70 ,则输出"奖励一本五年高考三年模拟"

运行结果:奖励一块橡皮

案例:

String today = "周末";String weather = "晴朗";if(today.equals("周末")){if(weather.equals("晴朗")){System.out.println("去游乐场玩");}else{System.out.println("看电影");}}else{System.out.println("在家写作业");}

运行结果:去游乐场玩

选择结构(switch语句):

switch(表达式){

case值1:

语句体1

break;

case值1:

语句体1

break;

default:

语句体n+1:

break;

}

格式解释:

表达式():byte short int char

JDK5以后可以是枚举

JDK7以后可以是字符串

case后面的值:就是用来和表达式的值进行匹配的内容

break:表示中断的意思,跳出该循环

default:所有的值都不匹配的时候,就用default

执行流程:

  1. 首先计算表达式的值
  2. 拿着该表达式的值,依次和case后面的值进行比较,就执行对应的语句体,遇到break就结束
  3. 如果所有的case都不匹配,就执行语句体n+1

注:case语句下没有break,会导致case穿透

案例1(有break):

int num = 1;switch (num) {case 1:System.out.println("奖励一部手机");break;case 2:System.out.println("奖励一个IPad");break;case 3:System.out.println("奖励一顿美食");break;default:System.out.println("做作业");}

运行结果:奖励一部手机

案例2(无break):

int num = 1;switch (num) {case 1:System.out.println("奖励一部手机");//break;case 2:System.out.println("奖励一个IPad");//break;case 3:System.out.println("奖励一顿美食");//break;default:System.out.println("做作业");}

运行结果:

奖励一部手机

奖励一个IPad

奖励一顿美食

做作业

“穿透式的结果”

循环结构(for循环):

  • for(初始化语句;判断条件语句;控制条件语句) {

循环体语句;

}

  • 执行流程

a:执行初始化语句

b:执行判断条件语句,看其结果是true还是false

  • 如果是false,循环结束。
  • 如果是true,继续执行。

c:执行循环体语句

d:执行控制条件语句

e:回到B继续

案例1:

for(int i = 0;i < 5;i++){System.out.println("我爱编程,更爱Java");}

解析:该段代码的含义是,初始化一个int型变量i,如果i < 5,就执行i++并打印出,我爱编程,更爱Java,直到不满足条件循环体执行结束

运行结果:

我爱编程,更爱Java

我爱编程,更爱Java

我爱编程,更爱Java

我爱编程,更爱Java

我爱编程,更爱Java

值得注意的几点:

for 关键字后面括号中的三个表达式必须用 “;” 隔开,三个表达式都可以省略,但 “;” 不能省略。

a. 省略“循环变量初始化”,可以在 for 语句之前由赋值语句进行变量初始化操作,如:

int i = 0;//变量i在for循环语句之前赋值for(;i < 10;i++){//省略初始化变量System.out.println("我爱编程,更爱Java");}

b. 省略“循环条件”,可能会造成循环将一直执行下去,也就是我们常说的“死循环”现象,如:

for(int i = 0;;i++){//省略循环条件System.out.println("我爱编程,更爱Java");}

注:对于死循环的情况,一般采取break方法强制结束循环

2、 for 循环变量初始化和循环变量变化部分,可以是使用 “,” 同时初始化或改变多个循环变量的值,如:

for(int i = 0,j = 5;i < 5;i++,j--){System.out.println(i+"+"+j+"="+(i+j));}

运行结果:

0+5=5

1+4=5

2+3=5

3+2=5

4+1=5

3、 循环条件部分可以使用逻辑运算符组合的表达式,表示复杂判断条件,但一定注意运算的优先级,如:

for(int i = 0;i < 10 && i !=5;i++){//省略循环条件System.out.println(i);}

运行结果:0  1  2  3  4

这里可能会有疑问,大家可以复习一下&&的语法哦,同时呢希望大家自己可以写一些更复杂的表达式来加强自己的编程能力哦!

循环结构(while循环):

格式:

  • 基本格式

while(判断条件语句) {

循环体语句;

}

  • 扩展格式

初始化语句;

while(判断条件语句) {

循环体语句;

控制条件语句;

}

案例:

int i = 1;while(i < 5){System.out.println("我爱编程,更爱Java");i++;}

运行结果:该段代码的含义是,定义int型变量i并赋值1,进入条件语句,i < 5 并打印一次“我爱编程,更爱Java”,之后执行i++,依次循环下去直到I >= 5不能再次进入循环

我爱编程,更爱Java

我爱编程,更爱Java

我爱编程,更爱Java

我爱编程,更爱Java

循环结构(do…while循环):

格式:

  • 基本格式

do {

循环体语句;

}while((判断条件语句);

  • 扩展格式

初始化语句;

do {

循环体语句;

控制条件语句;

} while((判断条件语句);

案例:

int i = 1;do{System.out.println("我爱编程,更爱Java");i++;}while (i <= 5);

解析:先执行一遍循环操作,然后判断循环条件是否成立,如果成立继续执行循环,直到不满足i<=5的判断条件

运行结果:

我爱编程,更爱Java

我爱编程,更爱Java

我爱编程,更爱Java

我爱编程,更爱Java

我爱编程,更爱Java

三种循环的差别

虽然可以完成同样的功能,但是还是有小区别:

  • do…while循环至少会执行一次循环体。
  • for循环和while循环只有在条件成立的时候才会去执行循环体

for循环语句和while循环语句的小区别:

  • 使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。

跳转控制语句

break 中断:用于结束循环

案例:

for(int i = 0;i < 10;i++){
   if((i > 1)&&(i % 2 == 0)){
       break;
   }
    System.out.print(i+"\t");
}
System.out.println("执行break之后,跳出循环,执行这句话");

解析:使用循环输出 0--9的数值,其中,如果数值大于 1 ,并且为 2 的倍数则停止输出。

运行结果:0   1     执行break之后,跳出循环,执行这句话

continue 继续:结束一次循环继续下一次循环

案例:

for(int i = 0;i < 10;i++){
   if(i % 2 != 0){
       continue;
   }
    System.out.print(i+"\t");
}

解析:打印 0--9 之间所有的偶数,通过continue结束本次循环,执行下一次循环:

运行结果:0 2   4   6   8

Java基础之流程控制语句相关推荐

  1. java学习day4(Java基础)流程控制语句

    分支结构 分支结构的概念 • 当需要进行条件判断并做出选择时,使用分支结构. if分支结构 • if(条件表达式) { 语句块; } 判断条件表达式是否成立 => 若成立,则执行语句块: =&g ...

  2. Java编程基础04——流程控制语句

    1.顺序结构语句(了解) A:什么是流程控制语句 流程控制语句:可以控制程序的执行流程. B:流程控制语句的分类 顺序结构 选择结构 循环结构 C:执行流程: 从上往下,依次执行. D:案例演示 输出 ...

  3. java第一周_从计算机基础到流程控制语句(if_else)

    一.计算机基础 裸机 没有安装任何软件的计算机(无操作系统.无应用软件) 计算机的应用 1.科学计算 科学计算也称数值计算.计算机最开始是为解决科学研究和工程设计中遇到的大量数学问题的数值计算而研制的 ...

  4. java控制语句案例_Java基础语法—流程控制语句

    在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.所以,我们必须清楚每条语句的执行流程.而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能. 3.1 流程控制语句分类 ​ ...

  5. java中特殊流程控制语句,深入分析JAVA流程控制语句

    复合语句 Java的复合语句是以整个区块为单位的语句,由{}以及{}内包含的内容组成 对于复合语句来说,复合语句创建了一个局部变量的作用域,该作用域中变量可以创建并使用,在作用域外使用则会报错,找不到 ...

  6. JS基础_流程控制语句

    1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 < ...

  7. Go语言基础语法-流程控制语句

    前言 程序是由语句构成,而流程控制语句 是用来控制程序中每条语句执行顺序的语句.可以通过控制语句实现更丰富的逻辑以及更强大的功能.几乎所有编程语言都有流程控制语句,功能也都基本相似. 其流程控制方式有 ...

  8. Python基础之流程控制语句

    一.if流程控制语句 python当中的显示布尔值和隐式布尔值 1.显示布尔值 True.False.逻辑比较 2.隐式布尔值 0 none 空(空列表 空字符 空字典)都为False,其余都为Tru ...

  9. Java 编程基础:流程控制语句

    目录 概述 顺序结构 分支结构 循环结构 一.循环语句 1.1 简介 1.2 while 循环 1.3 do-while 循环 1.4 for 循环 二.分支结构 2.1 if 条件语句 2.2 sw ...

最新文章

  1. php 过滤css样式,PHPCMS v9过滤采集内容中的CSS样式
  2. Linked list(单链表)
  3. VC++ MFC单文档应用程序SDI下调用glGenBuffersARB(1, pbo)方法编译通过但执行时出错原因分析及解决办法:glewInit()初始化的错误...
  4. java开发工程师的自我评价
  5. 掌握 Kafka,看这篇就足够了
  6. 分别在(ModelAtrs)Ascend、(Ubuntu16.04服务器+18.04镜像)GPU、(Ubuntu18.04)CPU下通过MindSpore实现(cifar10)图像分类
  7. clover java,clover-clover软件 v3.4.3 官方版
  8. Linux的段错误调试方法
  9. [AaronYang]C#人爱学不学[2]
  10. 关于UnityHub更换位置后找不到编辑器以及登录界面白屏的问题
  11. 记录一次linux信号量sem_t使用bug
  12. Java毕设项目水果网店管理系统(java+VUE+Mybatis+Maven+Mysql)
  13. DOS命令学习(从入门到精通)
  14. 在Chrome谷歌浏览器中使用H5地理位置API
  15. VRRP协议 学习笔记
  16. 如何在win10上连接苹果无线键盘
  17. python-pika
  18. Linux下安装软件的几种方法
  19. 软考 第8章 项目质量管理
  20. STM32的引脚模式

热门文章

  1. Beosin成都链安团队获得BOS安全漏洞激励
  2. 2021年美赛E题目简述(中英文)
  3. 网页html源码注入,注入html源码到浏览器的几种方式
  4. QT5教程-搭建自己的人机交互界面(附代码)(一):QT5安装与环境配置
  5. dnf服务器炸团门票怎么找回,DNF:打团掉线无法重连攻坚队?自助申请门票补偿系统上线...
  6. zabbix监控设置微信报警
  7. html模拟微信发送消息,关于微信公众平台模拟接收发送消息(无源码)
  8. 关于零基础学员参加达梦DCA认证考试的一点心得
  9. Oracle control文件,Oracle中的控制文件(control file)
  10. CocosCreator热更新(v1.10.2)