Java学习之路——流程控制

简介: 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。

Java学习之路——流程控制


程序流程控制


  1. 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。


  1. 其流程控制方式采用结构化程序设计中规定的三种基本流程控制,即:


  • 顺序结构。
  • 程序从上到下逐行地执行,中间没有任何判断和跳转。


  • 分支结构。
  • 根据条件,选择性地执行某段代码。
  • 有 if-else 和 switch-case 两种分支语句。


  • 循环结构。
  • 根据循环条件,重复性的执行某段代码。
  • 有 while、do...while、for 三种循环语句。
  • 注:JDK 1.5 提供了 foreach 循环,方便的遍历集合、数组元素。


顺序结构


  • 程序默认都是自上而下执行代码。


分支语句 1:if-else 结构


  1. if 语句三种格式:
if(条件表达式){
  执行代码块;
}
// 二选一
if(条件表达式){
  执行代码块1;
}else{
  执行代码块2;
}
// 多选一
if(条件表达式1){
  执行代码块1;
}else if(条件表达式2){
  执行代码块2;
}...else{
  执行代码块 n;
}

2.if-else 使用说明:

  • 条件表达式必须是布尔表达式(关系表达式或逻辑表达式)、布尔变量。
  • 语句块只有一条执行语句时,一对儿{}可以省略,但建议保留。
  • if-else 语句结构,根据需要可以嵌套使用。
  • 当 if-else 结构是“多选一”时,最后的 else 是可选的,根据需要可以省略。
  • 当多个条件是“互斥”关系时,条件判断语句及执行语句间顺序无所谓。
  • 当多个条件是“包含”关系时,“小上大下 / 子上父下”。


3.如何从键盘获取不同类型的变量:需要使用 Scanner 类。

  • 导包:import java.util.Scanner;
  • Scanner 的实例化:Scanner scan = new Scanner(System in);
  • 调用 Scanner 类的相关(next() / nextXxx())方法,来获取指定类型的变量。
import java.util.Scanner;
class ScannerTest{
  public static void main(String[] args){
    Scanner scan = new Scanner(System in);
    int num = scan.nextInt();
    System.out.println(num);
  }
}


分支语句2:switch-case 结构


  1. 格式:
switch(表达式){
  case 常量1:
    语句1;
    break
  case 常量2:
    语句2;
    break;
    ...
  case 常量n:
    语句n;
    break;
  default:
    语句;
    break;
}

2.说明:


  • 根据 switch 表达式中的值,依次匹配各个 case 中的常量。一旦匹配成功,则进入相应 case 结构中,调用其执行语句。当调用完执行语句之后,则仍然继续向下执行其他 case 结构中的执行语句,直到遇见 break 关键字或此 switch-case 结构末尾结束为止。


  • break 可以使用在 switch-case 结构中,表示一旦执行到此关键字,就跳出 switch-case 。


  • switch 结构中的表达式,只能是如下的 6 种数据类型之一:
  • byte
  • short
  • char
  • int
  • 枚举类型(JDK 5.0新增)
  • String 类型(JDK 7.0新增)


  • case 之后只能声明常量,不能声明范围。
  • break 是可选的。
  • default:相当于 if-else 结构中的 else 。default 是可选的,而且位置是灵活的。
  • 凡是可以使用 switch-case 的结构,都可以转换为 if-else 结构,反之则不成立。
  • switch-case 中的情况不能太多。


循环结构


  1. 循环结构:
  • 在某些条件满足的情况下,反复执行特定代码的功能。


  1. 循环语句分类:
  • for 循环。
  • while 循环。
  • do-while 循环。


  1. 循环语句的四个组成部分:
  • 初始化部分( init_statement )
  • 循环条件部分( test_exp )  -->  是 Boolean 类型。
  • 循环体部分( body_statement )
  • 迭代部分( alter_statement )


循环结构 1:for 循环


  1. 用法:
for(int i = 1;i <= 5000;i++){ // 初始化部分  // 循环条件 // 迭代部分
  System.out.println("Hello World!"); // 循环体
}


循环结构 2:while 循环


  1. 结构:
int i = 1;  // 初始化部分
while(i<5000){  // 循环条件
  // 循环体
  Syetem.out.println("Hello World!");
  // 迭代部分
  i++
}

2.说明:


  • 写 while 循环不能丢了迭代条件,如果丢了会导致死循环。
  • 写程序要避免死循环。
  • for 循环和 while 循环是可以相互转换的,但是它们的初始化作用域不同。
  • 出了 while 循环, i 仍然可以调用。


循环结构3:do-while 循环


  1. 结构:
int i = 1;  // 初始化部分
do{
  // 循环体
  System.out.println("Hello World!");
  // 迭代部分
  i++;
}while(i<5000)  // 循环条件

2.说明:


  • do-while 至少会执行一次循环体。
  • 开发中,使用 for 和 while 的会更多一些,较少使用 do-while 。


嵌套循环


  1. 将一个循环结构(A)声明在另一个循环结构(B)的循环体中,就构成了嵌套循环。


  1. 外层循环:循环结构(B)。


内层循环:循环结构(A)。

for(int j = 1;j <= 4;j++){
  for(int i = 1;i<=6;i++){
    System.out.println("*");
  }
  System.out.println();
}
  1. 内层循环结构遍历一遍,外层循环结构循环体执行一遍。


特殊关键字的使用:continue 和 break


关键词 适用范围 在循环中使用的作用 相同点
break switch-case
循环结构
结束当前循环 关键字后面不能声明执行语句
默认跳出包裹此关键字最近的一层循环
continue 循环结构 结束当次循环 关键字后面不能声明执行语句
默认跳出包裹此关键字最近的一层循环的当次循环


结束指定的循环


label:for(int i = 1;i <= 4;i++){
  for(int j = 1;j <= 10;j++){
    if(j % 4 == 0){
      break label;
      // continue label;
    }
  }
}


附加:特殊流程控制语句


  1. return:并非专门用于结束循环,功能是结束一个方法。当一个方法执行到一个 return 语句时,这个方法将被结束。


  1. 与 break 和 continue 不同的是,return 直接结束整个方法,不管这个 return 处于多少层循环之内。
相关文章
|
2月前
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
98 43
Java学习十六—掌握注解:让编程更简单
|
24天前
|
缓存 监控 Java
Java线程池提交任务流程底层源码与源码解析
【11月更文挑战第30天】嘿,各位技术爱好者们,今天咱们来聊聊Java线程池提交任务的底层源码与源码解析。作为一个资深的Java开发者,我相信你一定对线程池并不陌生。线程池作为并发编程中的一大利器,其重要性不言而喻。今天,我将以对话的方式,带你一步步深入线程池的奥秘,从概述到功能点,再到背景和业务点,最后到底层原理和示例,让你对线程池有一个全新的认识。
51 12
|
1月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
2月前
|
存储 SQL 小程序
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
这篇文章详细介绍了Java虚拟机(JVM)的运行时数据区域和JVM指令集,包括程序计数器、虚拟机栈、本地方法栈、直接内存、方法区和堆,以及栈帧的组成部分和执行流程。
41 2
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
|
1月前
|
小程序 前端开发 算法
|
1月前
|
Java API 开发者
Java如何实现企业微信审批流程
大家好,我是V哥。本文分享如何在企业微信中实现审批流程,通过调用企业微信的开放API完成。主要内容包括获取Access Token、创建审批模板、发起审批流程和查询审批结果。提供了一个Java示例代码,帮助开发者快速上手。希望对你有帮助,关注V哥爱编程,编码路上同行。
|
1月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
2月前
|
SQL IDE Java
入门Cloud Toolkit:简化你的Java应用开发与部署流程
【10月更文挑战第19天】作为一名长期从事Java开发的程序员,我一直致力于寻找能够简化日常开发工作的工具。在众多工具中,阿里巴巴推出的Cloud Toolkit引起了我的注意。这款免费的插件旨在帮助开发者更轻松地进行开发、测试及部署工作,尤其是在与云服务交互时表现尤为出色。本文将从个人的角度出发,介绍Cloud Toolkit的基本功能及其使用技巧,希望能帮助初学者快速上手这款实用工具。
32 1
|
2月前
|
前端开发 安全 Java
java发布公告的实现流程
构建一个Java公告发布系统涉及到前端界面设计、后端业务逻辑处理、数据库设计与交互、安全性保障等多个环节。通过采用现代的开发框架和最佳实践,可以高效地开发出既安全又易于维护的系统。随着需求的增长,系统还可以进一步扩展,比如增加评论功能、通知订阅、多语言支持等。
50 1
|
2月前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
59 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用