java源码-流程控制

news2024/11/14 14:10:41

1、Java流程控制

主要涉及三大流程控制:顺序、分支、循环

如下图:

1)流程2 存在对用户名和密码的校验,是否为空,存在分支控制

2)流程3 用户名和密码在数据库是否存在,存在分支控制

3)流程4/5 顺序控制

备注:token 返回给app,下一次用户打开app,app段只需要把本地的token传给后端,后端校验token是否失效等,如果未失效,就代表登录成功了​​​​​​​

2、顺序控制

2.1、基本介绍

程序从上到下逐级运行,中间没有任何判断和跳转

3、分支控制 if-else

让程序有选择的执行,分支控制有4种:
1)单分支控制
2)双分支控制
3)多分支控制
4)switch分支结构

3.1、单分支

基本语法
if (条件表达式) {
  执行代码块;(可以多条语句)
}
tip:当条件表达式为true时,就会执行{}里的代码。如果为false就不执行,此外如果if后面只有一条语句,则可以不写{}。

3.2、双分支

基本语法
if (条件表达式) {
  执行代码块1;(可以多条语句)
} else {
  执行代码块2;
}
说明:当条件表达式成立时,执行if里面的代码块,否则执行else里面的代码块。同样的,如果执行的代码块只有一条语句,则{}可以省略。否则不能省略。

3.3、多分支

基本语法
if(条件表达式1){
  执行代码块1;
} else if {
  执行代码块2;
}

else {
  执行代码块n;
}

Tips:
①多分支,可以没有else,如果所有表达式条件都不成立,则一个入口也没有
②如果有else,如果所有条件表达式都不成立,则默认执行else里的代码块。

3.4、嵌套分支

基本介绍
在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支结构称为内层分支,外面的分支结构成为外层分支。 规范:不要嵌套超过3层(原因:可读性差)

基本语法
if(){
  if(){
     //if-else
  }else{
     //if-else
  }
}


4、switch分支结构

基本语法
switch(表达式){
  case 常量1:
     代码块1;
     break;

   case 常量n:
    代码块n;
    break;
   default:
    default代码块;
    break;
Tips:
①switch关键字,表示switch分支
②表达式对应一个值
③case 常量1:当表达式的值等于常量1,就执行代码块1
④break:表示退出switch
⑤如果和case常量1匹配,就执行代码块1,如果没有匹配成功,就继续匹配case常量2,以此类推。
⑥如果一个都没有匹配成功,就执行default

细节
1)表达式数据类型,应和case后的常量类型一致,或者是可以自动转成可以相互比较的。
2)switch(表达式)中表达式的返回值必须是:(byte,short, int,char,enum,String)类型。代码如下:3)case子句中的值必须是常量,而不能是变量。
4)default子句是可选的,当没有匹配的case时,执行default
5)break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有写 break,程序会       顺序执行到switch结尾。
6)  switch和if

如果判断的具体数值不多,而且符号byte,short,int,char,enum,String这6种类型。建议使用switch语句。
其他情况,对区间的判断,和对结果为boolean类型判断,使用if,if的适用范围更广

5、循环控制

基本介绍
循环控制,就是要让你的代码可以循环的执行。

5.1、for循环控制

基本语法
for(循环变量初始化;循环条件;循环变量迭代){
   循环操作(语句);
}
Tips:
①for关键字,表示循环控制
②for有四个要素:循环变量初始化,循环条件,循环操作,循环变量迭代
③循环操作如果只有一条语句,那么{}可以省略
Tips:循环条件也可以省略,省略之后变成无限循环。代码如下:

for (;;){
    System.out.println("hh6879");
}
②循环条件是返回一个布尔值的表达式
③循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开, 循环变量迭代也可以有多条变量迭代语句,中间用逗号隔开。代码如下:

int num1 = 4;
for (int i1 =0,j = 0; i1 < num1; i1++, j+=2){
    System.out.println("i1 ="+i1+" j= "+j);
}

5.1、while循环控制

基本语法
循环变量初始化
while(循环条件){
  循环体(语句);
  循环变量迭代;
}
Tips:
①while与for一样,也有循环四要素。
②但是while与for四要素的位置不一样
③while与for一样写死循环,省略循环变量迭代就可以了。

while细节
①while和for一样,循环条件都是返回一个布尔值的表达式
②while循环是先判断再执行语句(与do…whlie相反)

5.2、do…while循环控制

基本语法
循环变量初始化
do{
  循环体(语句);
  循环变量迭代;
}while(循环条件);
Tips:
①do while都是关键字
②与前面的一样,do…whlie也有循环四要素,只是位置不一样。
③先执行再判断,也就是说do里的语句至少执行一遍。(与while不一样)
④最后有一个分号;

细节
①与前面一样,循环条件是返回一个布尔值的表达式。
②do…while循环是先执行,在判断,因此至少执行一次。

5.3、嵌套循环控制

基本介绍
①当一个循环放在另一个循环内,就形成了嵌套循环。其中for,while,do…while均可以作为外层循环和内层循环。 同分支嵌套一样,建议一般使用两层,不要超过三层,否则代码可读性很差。
②实质上,嵌套循环就是内层循环被当作了外层循环的循环体。只有内层循环的循环条件为false的时候,才会跳出内层循环,才可以结束本次外层循环,开始下一次循环。
③设外层循环次数为m,内层循环次数为n,则内层实际上需要执行m*n次。代码示例如下:

for(int i = 1; i <= 4; i++){ // 外层循环:4次
    for (int j =1;j<=3; j++){ // 内层循环:3次
        System.out.println("hh6879"); // 一共 3*4 = 12 次
    }
}

6、跳转控制语句

6.1、break

为什么需要跳转控制?因为当我们需要循环解决问题,但是循环的次数不确定时,需要当满足某些条件时,终止循环。这时候就需要流程控制语句了。

基本介绍
break语句用于终止某个语句块的执行,一般使用在switch或者循环中。
基本语法
{  …
  break;
  …
}

细节
①break语句出现在多层嵌套语句时,可以通过标签指明要终止那一层的语句块。
②标签的使用
label1 :{ …
label2 :  {…
label3 :    {…
        break label2;
        }
      }
    }
TIps:
①break可以指定退出哪层
②label是标签,由程序员指定。只要是符合规则的命名都可以
③break 指定到那个标签就退到那里
④在实际使用中,尽量不要使用标签。
⑤如果没有指定标签,break默认退出最近的循环体

6.2、continue

基本介绍
①与break不同,continue用于结束本次循环,继续执行下一次循环,而不是直接跳出循环体。
②continue也和break一样,可以通过标签来指定要跳过的是那一层的循环,规则通前面一样。这里不写了。
基本语法
{  …
  continue;
  …
}
细节
①continue的标签与break标签的用法一样,不过要记得continue是本次,break是本层。

6.3、return

基本介绍
return表示跳出所在的方法,在讲方法时细说。这里简单提一下。要注意return写在main方法中执行到的时候会退出程序。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1273447.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入了解Java8新特性-日期时间API之TemporalAdjusters与TemporalAdjuster

阅读建议 嗨&#xff0c;伙计&#xff01;刷到这篇文章咱们就是有缘人&#xff0c;在阅读这篇文章前我有一些建议&#xff1a; 本篇文章大概10000多字&#xff0c;预计阅读时间长需要10分钟。本篇文章的实战性、理论性较强&#xff0c;是一篇质量分数较高的技术干货文章&…

Linux基础操作二:Linux系统介绍

1、系统启动过程 Linux系统的启动过程并不是大家想象中的那么复杂&#xff0c;其过程可以分为5个阶段&#xff1a; 内核的引导。运行 init。系统初始化。建立终端 。用户登录系统。 1.1、内核引导 当计算机打开电源后&#xff0c;首先是BIOS开机自检&#xff0c;按照BIOS中…

六、shell编程

详见 《shell编程超详细入门教程》

enum枚举类 - Java

枚举类 一、引入二、介绍三、实现方式1、 自定义类实现枚举小结 2、 enum关键字实现枚举 四、使用enum注意事项五、练习六、enum常用方法七、练习八、enum和接口 一、引入 要求创建季节(Season)对象&#xff0c;请设计并完成。 传统方法&#xff1a; public class Enumerati…

【秒懂JDK,JRE,JVM的关系】

&#x1f320;作者&#xff1a;TheMythWS. &#x1f387;座右铭&#xff1a;不走心的努力都是在敷衍自己&#xff0c;让自己所做的选择&#xff0c;熠熠发光。 ​ JDK与JRE与JVM的关系 先用一张图来直观感受JDK JRE JVM之间的关系&#xff1a; JDK与JRE的关系 先说JDK和JRE…

绩效考核管理项目|记录2

给界面添加筛选条件并且把搜索功能实现 这段代码写入搜索方法里面就能实现功能。 private void bingdgv(){//筛选项&#xff1a;用户名、职位代码、是否辞职string userName txtUserName.Text.Trim();int baseTypeId (int)base_cbx.SelectedValue;bool isStop isdel_ckb.Che…

Loki安装部署

Loki安装部署 1、Loki介绍 Loki 是受 Prometheus 启发由 Grafana Labs 团队开源的水平可扩展&#xff0c;高度可用的多租户日志聚合系统。开发语 言: Google Go。它的设计具有很高的成本效益&#xff0c;并且易于操作。使用标签来作为索引&#xff0c;而不是对全文进行检索&…

人工智能“排头兵”,探访福州多地 AI 智算实践

生成式 AI 在 2023 年再次引爆 IT 技术发展&#xff0c;福建作为数字中国的重要策源地&#xff0c;也是国家数字经济创新发展试验区&#xff0c;在人工智能方面拥有良好的产业基础和人才优势&#xff0c;同时近期出台的《福建省促进人工智能产业发展十条措施》&#xff0c;为福…

基于web的舞蹈选课管理系统设计与实现

基于web的舞蹈选课管理系统的设计与实现 摘 要 现如今&#xff0c;学生网上选课越来越便利&#xff0c;但是大多数在线下教育机构工作的教务人员&#xff0c;在进行教务管理的时候&#xff0c;并没有完全采用信息化管理。随着选择线下教育机构的人数不断增加&#xff0c;人工…

jQuery和JavaScript的区别

一、比较原生js和jQuery的区别 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title…

np.random.uniform() 采样得到的是一个高维立方体,而不是球体,为什么?

在代码中&#xff0c;采样是通过以下方式完成的&#xff1a; samples self.center np.random.uniform(-self.radius, self.radius, (num_samples, len(self.center))) 这里&#xff0c;np.random.uniform函数在每个维度独立地生成了一个介于-self.radius和self.radius之间的…

沉默是金,寡言为贵

​ 佛说&#xff1a;“人受一句话&#xff0c;佛受一柱香。”佛教的十善&#xff0c;其中有关口德就占了四样&#xff1a;恶口、妄语、两舌、绮语&#xff0c;可见口德是很重要的。言为心声&#xff0c;能说出真心的话&#xff0c;必然好听&#xff1b;假如说话言不由衷&#x…

Vue路由跳转页面刷新

案例使用映射路由 百度的时候各种操作就是没有注意keepAlive&#xff0c;发现那个为缓存开启之后前端有个小后台Vue生命周期函数失效。同一个页面刷新时这个keep Alive需要关闭。

热部署怎么部署

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言操作流程&#xff1a;在这里插入图片描述 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a832d83c091742eda9d9325931a89df4.png) 这里的跟上面的…

vue3+vite 批量引入局部组件及使用

目录结构 批量引入组件 例如&#xff1a;src/views/oss/components/customComponents.ts import { ref, defineAsyncComponent, markRaw } from vue;const modules import.meta.glob(./*.vue);//这告诉 TypeScript&#xff0c;components.value 是一个键为字符串、值为 define…

埃拉托色尼筛法

def is_prime(n):if n % 2 0 and n ! 2:return Falsefor i in range(3, int(math.sqrt(n) 1)):if n % i 0:return Falsereturn n ! 1def eratosthenes(n):primes []is_prime [True] * (n 1)for i in range(2, n1):if is_prime[i]:primes.append(i)# 用当前素数i去筛掉所有…

知乎禁止转载的回答怎么复制做笔记?

问题 对于“禁止转载”的回答&#xff0c;右键复制是不行的&#xff0c;ctrl-c也不行&#xff0c;粘贴之后都是当前回答的标题。稍微看了代码&#xff0c;应该是对copy事件进行了处理。不过这样真的有用吗&#xff0c;真是防君子不防小人&#xff0c;只是给收集资料增加了许多…

Spring Security 6.x 系列(7)—— 源码分析之建造者模式

一、建造者模式 WebSecurity、HttpSecurity、AuthenticationManagerBuilder 都是框架中的构建者&#xff0c;把他们放到一起看看他们的共同特点&#xff1a; 查看AuthenticationManagerBuilder的继承结构图&#xff1a; 查看HttpSecurity的继承结构图&#xff1a; 查看WebSec…

pycharm编译报错处理

1.c生成工具下载 https://visualstudio.microsoft.com/visual-cpp-build-tools/ 在这里插入图片描述 pip install pycocotools

浅谈用户体验测试的主要功能

用户体验(User Experience&#xff0c;简称UX)在现代软件和产品开发中变得愈发重要。为了确保产品能够满足用户期望&#xff0c;提高用户满意度&#xff0c;用户体验测试成为不可或缺的环节。本文将详细探讨用户体验测试的主要功能&#xff0c;以及它在产品开发过程中的重要性。…