当前位置: 首页 > news >正文

Java基础4-控制流程

控制流程

Java使用条件语句和循环结构确定控制流程。基本和C++一样,但是没有goto语句,但break语句可以有标签,用于跳出内层循环。

块作用域(block)

(即复合语句)是指由一堆花括号括起来的若干条简单的Java语句,

  • 块确定了变量的作用域
  • 块能互相嵌套,但是内层声明的变量名不能和外层同名(注意作用域!)。

条件语句

if(condition) statement;if(condition){statement1;statement2;
}
else{//可选statement3
}
else if{//可选statement4
}

当然条件判断不止条件语句一种实现,还有一些类封装了含条件语句的方法,比如用于判断值为空的Optional类,就提供了这么一个方法orElseThrow。使得代码更为简洁易读。image-20241023144030725

循环

while循环

while循环首先检测循环条件,因此循环体中的代码有可能不执行;do while 语句会至少执行一次。和for循环相比,while循环不指定循环次数,在不知道循环次数时比较好用。

while(condition)statement;while(condition){statement1;statement2;
}do statement while(condition);do {statement1;statement2
}while(condition)

for循环

支持迭代的一种通用结构,可以被视作while循环的一种简化形式,都能用while来重写。一共三部分:

  • 初始化计数器
  • 检测条件
  • 更新计划
for(int i=1;i<=10;i++)System.out.println(i);
增强for循环

switch语句

case标签必须是整数或枚举常量,不能测试字符串,比如case "A"就会触发报错。使用枚举时不用指明枚举名字,举例来说不用case Size.SMALL,直接用case SMALL就可以

switch(n){case 1:{statement1;break;//这个不能忘,要主动退出!否则可能触发多个分支}case 2:{statement2;break;}//………………
}

break语句

中断控制流程语句。

break可以用于退出循环语句。

但有时在嵌套很深的循环语句中会发生不可预料的事情,此时可能更希望跳到嵌套的所有循环语句之外,通过修改各层循环的检测条件来实现很不方便,因此选择使用标签的方法,标签后必须紧跟一个冒号,并且标签必须放在希望跳出的最外层循环之前。

public class LabeledBreakExample {  public static void main(String[] args) {  outerLoop: // 标签 outerLoop  for (int i = 0; i < 5; i++) {  System.out.println("Outer loop i: " + i);  for (int j = 0; j < 5; j++) {  System.out.println("  Inner loop j: " + j);  // 当 j 等于 2 时,跳出 outerLoop 标签指向的外层循环  if (j == 2) {  break outerLoop; // 使用带标签的 break  }  }  }  System.out.println("Exited the outer loop.");  }  
}

continue语句

也是用于中断正常控制流程的语句,使用continue语句会越过当前循环体的剩余部分,跳到循环首部去

还有一种带标签的continue语句,将跳到与标签匹配的循环首部

`

continue语句

也是用于中断正常控制流程的语句,使用continue语句会越过当前循环体的剩余部分,跳到循环首部去

还有一种带标签的continue语句,将跳到与标签匹配的循环首部

相关文章:

Java基础4-控制流程

控制流程 Java使用条件语句和循环结构确定控制流程。基本和C一样&#xff0c;但是没有goto语句&#xff0c;但break语句可以有标签&#xff0c;用于跳出内层循环。 块作用域&#xff08;block&#xff09; 块&#xff08;即复合语句&#xff09;是指由一堆花括号括起来的若干…...

面试题分享11月1日

1、过滤器和拦截器的区别 过滤器是基于spring的 拦截器是基于Java Web的 2、session 和 cookie 的区别、关系 cookie session 存储位置 保存在浏览器 &#xff08;客户端&#xff09; 保存在服务器 存储数据大小 限制大小&#xff0c;存储数据约为4KB 不限制大小&…...

【含文档】基于ssm+jsp的学科竞赛系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: apache tomcat 主要技术: Java,Spring,SpringMvc,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定义了四个…...

Docker方式部署ClickHouse

Docker方式部署ClickHouse ClickHouse docker 版本镜像&#xff1a;https://docker.aityp.com/r/docker.io/clickhouse/clickhouse-server ClickHouse 21.8.13.6 docker 版本镜像&#xff1a;https://docker.aityp.com/image/docker.io/clickhouse/clickhouse-server:21.8.13.…...

车载通信架构 --- PNC、UB与信号的关系

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所有人的看法和评价都是暂时的,只有自己的经历是伴随一生的,几乎所有的担忧和畏惧,都是来源于自己的想象,只有你真的去做了,才会发现有多快乐。…...

智慧农业云平台:大数据赋能现代农业的未来

近年来&#xff0c;随着科技的迅速发展&#xff0c;农业作为传统行业正面临着前所未有的变革。智慧农业&#xff0c;作为现代农业发展的重要方向&#xff0c;借助云计算、大数据、物联网等技术&#xff0c;正在为农业生产、管理和服务提供全新的解决方案。在这个背景下&#xf…...

【python】OpenCV—Tracking(10.4)—Centroid

文章目录 1、任务描述2、人脸检测模型3、完整代码4、结果展示5、涉及到的库函数6、参考 1、任务描述 基于质心实现多目标&#xff08;以人脸为例&#xff09;跟踪 人脸检测采用深度学习的方法 核心步骤&#xff1a; 步骤#1&#xff1a;接受边界框坐标并计算质心 步骤#2&…...

为什么TCP(TIME_WAIT)2倍MSL

为什么TCP&#xff08;TIME_WAIT&#xff09;2倍MSL 一、TCP关闭连接的四次挥手流程进入TIME_WAIT 二、TIME_WAIT状态的意义1. 确保ACK报文到达对方2. 防止旧报文干扰新连接 三、为什么是2倍MSL四、TIME_WAIT的图解五、TIME_WAIT在实际应用中的影响总结 在TCP连接的关闭过程中&…...

jieba-fenci 05 结巴分词之简单聊一聊

拓展阅读 DFA 算法详解 为了便于大家学习&#xff0c;项目开源地址如下&#xff0c;欢迎 forkstar 鼓励一下老马~ 敏感词 sensitive-word 分词 segment 分词系列专题 jieba-fenci 01 结巴分词原理讲解 segment jieba-fenci 02 结巴分词原理讲解之数据归一化 segment jieba…...

Hadoop期末复习(完整版)

前言&#xff08;全部为语雀导出&#xff0c;个人所写&#xff0c;仅用于学习&#xff01;&#xff01;&#xff01;&#xff01;&#xff09; 复习之前我们要有目的性&#xff0c;明确考什么&#xff0c;不考什么。 对于hadoop来说&#xff0c;首先理论方面是跑不掉的&#x…...

Python篮球王子

系列文章 序号直达链接爱心系列1Python制作一个无法拒绝的表白界面2Python满屏飘字表白代码3Python无限弹窗满屏表白代码4Python李峋同款可写字版跳动的爱心5Python流星雨代码6Python漂浮爱心代码7Python爱心光波代码8Python普通的玫瑰花代码9Python炫酷的玫瑰花代码10Python多…...

分享一些在部署k8s集群时遇到的问题

目录 一、k8s拉取镜像失败&#xff0c;多半是docker镜像源失效了&#xff0c;需要经常更新 1.编辑该配置文件&#xff1a; 2.重启服务器&#xff1a; 二、kubectl get nodes时出现&#xff1a;The connection to the server localhost:8080 was refused - did you specify t…...

【Canal 中间件】Canal使用原理与基本组件概述

文章目录 一、canal 概述1.2 什么是 canal2.3 canal 的所有组件 二、canal 工作原理2.1 MySQL 主备复制原理2.2 canal 工作原理 三、canal.server 组件3.1 canal.server 的架构3.2 instance 模块组成部分 四、canal.client 组件4.1 类设计4.2 server/clinet 交互协议4.3 使用案…...

《Baichuan-Omni》论文精读:第1个7B全模态模型 | 能够同时处理文本、图像、视频和音频输入

技术报告Baichuan-Omni Technical ReportGitHub仓库地址 文章目录 论文摘要1. 引言简介2. 训练2.1. 高质量的多模态数据2.2. 多模态对齐预训练2.2.1. 图像-语言分支2.2.2. 视频语音分支2.2.3. 音频语言分支2.2.4. 图像-视频-音频全方位对齐 2.3. 多模态微调监督 3. 实验3.1. 语…...

YOLOv6-4.0部分代码阅读笔记-common.py

common.py yolov6\layers\common.py 目录 common.py 1.所需的库和模块 2.class SiLU(nn.Module): 3.class ConvModule(nn.Module): 4.class ConvBNReLU(nn.Module): 5.class ConvBNSiLU(nn.Module): 6.class ConvBN(nn.Module): 7.class ConvBNHS(nn.Module): …...

移植 AWTK 到 纯血鸿蒙 (HarmonyOS NEXT) 系统 (4) - 平台适配

在移植 AWTK 到 HarmonyOS NEXT 系统之前&#xff0c;我们需要先完成平台适配&#xff0c;比如文件、多线程&#xff08;线程和同步&#xff09;、时间、动态库和资源管理。 1. 文件 HarmonyOS NEXT 支持标准的 POSIX 文件操作接口&#xff0c;我们可以直接使用下面的代码&am…...

Java 多线程(八)—— 锁策略,synchronized 的优化,JVM 与编译器的锁优化,ReentrantLock,CAS

前言 本文为 Java 面试小八股&#xff0c;一句话&#xff0c;理解性记忆&#xff0c;不能理解就死背吧。 锁策略 悲观锁与乐观锁 悲观锁和乐观锁是锁的特性&#xff0c;并不是特指某个具体的锁。 我们知道在多线程中&#xff0c;锁是会被竞争的&#xff0c;悲观锁就是指锁…...

【项目分享】法拉利中控台模拟 html+css+js

引入&#xff1a; 制作一个模拟法拉利中控台的网页是一个有趣且富有挑战性的项目。为了简化这个任务&#xff0c;我们可以使用一些HTML、CSS和JavaScript来实现一个基本的界面。以下是一个简单的示例&#xff0c;展示了如何创建一个基本的法拉利中控台模拟网页。 效果展示&…...

Rust 力扣 - 2461. 长度为 K 子数组中的最大和

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们遍历长度为k的窗口&#xff0c;用一个哈希表记录窗口内的所有元素&#xff08;用来对窗口内元素去重&#xff09;&#xff0c;我们取哈希表中元素数量等于k的窗口总和的最大值 题解代码 use std::collecti…...

stm32103c8t6 pwm驱动舵机(SG90)

本方法采用通用定时器&#xff08;TIM2、TIM3、TIM4、TIM5&#xff09;实现 代码&#xff1a; PWM.h #ifndef __PWM_H // 防止头文件重复包含 #define __PWM_H#include "stm32f10x.h" // 包含STM32F10x系列的设备头文件// 函数声明 void TIM2_PWM_In…...

Tina Linux音频开发指南:从ALSA框架到实战调试

1. 项目概述&#xff1a;为什么我们需要一份音频开发指南&#xff1f;在嵌入式Linux的世界里&#xff0c;音频开发常常被开发者们戏称为“玄学”。我见过太多项目&#xff0c;硬件电路设计得漂漂亮亮&#xff0c;系统也跑得飞快&#xff0c;但一到音频部分就卡壳——要么是播放…...

终极QR二维码修复工具:QRazyBox完整指南与高效恢复技巧

终极QR二维码修复工具&#xff1a;QRazyBox完整指南与高效恢复技巧 【免费下载链接】qrazybox QR Code Analysis and Recovery Toolkit 项目地址: https://gitcode.com/gh_mirrors/qr/qrazybox 还在为损坏的二维码无法扫描而烦恼吗&#xff1f;QRazyBox是一款专业的免费…...

零碳园区绿电直供技术的挑战与解决方案

一、难点问题 二次系统&#xff0b;储能推高初投 篇幅有限仅展示了部分 根据650号文 &#xff0c;绿电直连项目必须配置继电保护、安全稳定控制装置和通信设备等二次系统 &#xff0c;以确保项目的安全性和稳定性。这些强制性配置显著增加了项目的初始投资成本。 专线造价与全周…...

紧急!你的灵感工作流正在被Perplexity范式淘汰:3个信号预警+2天迁移 checklist(含Prompt审计表)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;紧急&#xff01;你的灵感工作流正在被Perplexity范式淘汰&#xff1a;3个信号预警2天迁移 checklist&#xff08;含Prompt审计表&#xff09; 当你反复修改同一个提示词却仍得不到结构化输出&#xff0c;当团…...

Linux包管理核心:yum机制详解与实战配置指南

1. 项目概述&#xff1a;为什么你需要掌握yum&#xff1f;在Linux的世界里&#xff0c;尤其是以Red Hat、CentOS、Fedora为代表的发行版中&#xff0c;yum&#xff08;Yellowdog Updater, Modified&#xff09;是每一位系统管理员和开发者绕不开的核心工具。你可以把它想象成一…...

C语言编程入门:从变量、运算符到控制流与实战计算器

1. 项目概述&#xff1a;为什么C语言是程序员的“内功心法”&#xff1f;如果你刚刚完成“系列&#xff08;一&#xff09;”的安装和环境配置&#xff0c;恭喜你&#xff0c;你已经迈出了从“电脑使用者”到“程序创造者”最关键的一步。很多新手会问&#xff0c;现在有那么多…...

Linux入门指南:从内核到终端,掌握核心命令与文件操作

1. 从内核到终端&#xff1a;理解Linux的运作逻辑很多刚接触Linux的朋友&#xff0c;包括我当年&#xff0c;都会觉得它是一堆神秘命令的集合。输入几个字母&#xff0c;敲下回车&#xff0c;系统就乖乖听话了。但要想真正用好Linux&#xff0c;而不是死记硬背命令&#xff0c;…...

嵌入式网络开发避坑:LwIP软件定时器溢出处理与链表排序的实战细节

嵌入式网络开发避坑&#xff1a;LwIP软件定时器溢出处理与链表排序的实战细节 在嵌入式网络开发中&#xff0c;LwIP协议栈因其轻量级和高度可裁剪性成为众多开发者的首选。然而&#xff0c;在实际应用中&#xff0c;软件定时器的溢出处理和链表排序逻辑往往是引发隐蔽问题的重灾…...

树莓派当机载电脑:搭建Pixhawk无人机与动捕系统的ROS通信桥梁(VRPN/MOCAP_NOKOV双方案)

树莓派作为机载计算机&#xff1a;构建Pixhawk无人机与动作捕捉系统的ROS通信框架 在无人机自主飞行和机器人协同控制领域&#xff0c;高精度的位置反馈是实现稳定控制的基础。传统GPS定位在室内环境中完全失效&#xff0c;而基于光学动作捕捉系统的定位方案能够提供毫米级的精…...

AIGC 检测‘信息密度‘到底是什么?嘎嘎降 AI 帮你 AI 率从 65% 降到 8%

AIGC 检测"信息密度"到底是什么&#xff1f;嘎嘎降 AI 帮你 AI 率从 65% 降到 8% AIGC 检测算法 4.0 版本看的 5 项底层指标里——信息密度权重排第二&#xff08;约 25%&#xff09;。理解了这一项你才知道为什么"工整学术风"也会被判 AI。这篇文章把&quo…...