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

Java从入门到精通-流程控制(一)

流程控制

67554e981998408b97542efb9836baba.png
1.复合语句

复合语句,也称为代码块,是一组Java语句,用大括号 {} 括起来,它们可以被视为单个语句。复合语句通常用于以下情况:

- 在控制结构(如条件语句和循环)中包含多个语句。

- 在方法中定义局部变量的作用域。

示例1:

public class IfStatementExample {public static void main(String[] args) {int number = 5;if (number > 0) {System.out.println("这个数是正数");}// 如果条件为假,代码块将被跳过if (number < 0) {System.out.println("这个数是负数");}}
}

在示例1中,我们使用了一个复合语句来计算 z 的值,并在复合语句内部打印它。需要注意的是,z 变量的作用域仅限于复合语句内部,在复合语句外部无法访问。复合语句是组织代码并控制变量作用域的重要工具,你将在编写Java程序时经常遇到它们。

2.条件语句


条件语句是Java编程中的关键元素之一,它允许根据不同的条件执行不同的代码块。在这一部分,我们将探讨两种常见的条件语句:if 条件语句和 switch 多分支语句。

2.1 if条件语句

if 条件语句允许你根据一个条件来执行代码块。如果条件为真,代码块将被执行;如果条件为假,代码块将被跳过。

public class IfStatementExample {public static void main(String[] args) {int number = 5;if (number > 0) {System.out.println("这个数是正数");}// 如果条件为假,代码块将被跳过if (number < 0) {System.out.println("这个数是负数");}}
}

在示例2中,我们首先检查 number 是否大于0,如果是,则打印 "这个数是正数"。然后,我们检查 number 是否小于0,但由于条件不满足,第二个 if 代码块被跳过。

除了基本的 `if` 语句,还可以使用 `else` 和 `else if` 来处理多个条件。

示例3:判断数字正、负:

public class ElseIfStatementExample {public static void main(String[] args) {int number = 0;if (number > 0) {System.out.println("这个数是正数");} else if (number < 0) {System.out.println("这个数是负数");} else {System.out.println("这个数是零");}}
}

在示例3中,我们首先检查 number 是否大于0,如果是,打印 "这个数是正数"。如果不是,然后检查是否小于0,如果是,打印 "这个数是负数"。如果两个条件都不满足,就执行 else 代码块。

2.2 switch多分支语句

`switch` 语句是一种多分支条件语句,用于根据表达式的值执行不同的代码块。它通常用于处理多个可能的情况。

示例4:根据星期几打印不同的消息:

public class SwitchStatementExample {public static void main(String[] args) {int dayOfWeek = 3;switch (dayOfWeek) {case 1:System.out.println("星期一");break;case 2:System.out.println("星期二");break;case 3:System.out.println("星期三");break;case 4:System.out.println("星期四");break;case 5:System.out.println("星期五");break;default:System.out.println("周末");}}
}

在示例4中,我们根据 dayOfWeek 的值执行不同的代码块。使用 break 关键字来结束每个 case 分支,以防止继续执行后续分支。如果没有匹配的分支,将执行 default 代码块。

这就是条件语句的基本概念。它们能够根据不同的条件来控制程序的执行流程。接下来,我们将讨论循环语句。

3.循环语句

循环语句是控制程序重复执行一段代码的关键工具。在Java中,有三种主要的循环语句:while 循环,do...while 循环,和 for 循环。我将逐一介绍它们。

3.1 while循环语句

`while` 循环允许你在条件为真的情况下重复执行一段代码块。它在进入循环之前检查条件。

示例5:使用 while 循环计算1到10的和:

public class WhileLoopExample {public static void main(String[] args) {int sum = 0;int i = 1;while (i <= 10) {sum += i;i++;}System.out.println("1到10的和为:" + sum);}
}


在示例5中,我们初始化 sum 为0,然后使用 while 循环从1加到10。i 用于跟踪当前的数字,每次迭代后增加1。

3.2 do...while循环语句

do...while 循环与 while 循环类似,但它首先执行代码块,然后再检查条件。这意味着无论条件是否为真,代码块至少会执行一次。

示例6:使用 do...while 循环验证用户输入的密码:

import java.util.Scanner;
public class DoWhileLoopExample {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String password;do {System.out.print("请输入密码:");password = scanner.nextLine();} while (!password.equals("12345"));System.out.println("密码正确,欢迎进入系统!");scanner.close();}
}

在示例6中,无论用户输入的密码是否正确,至少会要求用户输入一次密码。

3.3 for循环语句

for 循环是一种灵活的循环,通常用于已知循环次数的情况。它包括初始化、条件和迭代部分。

示例7:使用 `for` 循环输出1到5的数字:

public class ForLoopExample {public static void main(String[] args) {for (int i = 1; i <= 5; i++) {System.out.println(i);}}
}

在示例7中,使用 for 循环初始化 i 为1,然后在每次迭代后增加1。循环在 i 大于5之前执行。

这些是Java中的常见循环语句。它们允许你有效地重复执行代码块,以完成各种任务。接下来,我们将探讨循环控制语句,包括 break 和 continue。

4.循环控制

循环控制语句允许你更灵活地管理循环的执行流程。在这一部分,我们将介绍两个关键的循环控制语句:break 和 continue。

4.1 break语句

break 语句用于中断循环的执行,无论循环条件是否满足。通常,break 用于在满足某个条件时立即退出循环。

示例8:使用 `break` 来在找到目标值时中断循环:

public class BreakStatementExample {public static void main(String[] args) {int[] numbers = {1, 2, 3, 4, 5};int target = 3;for (int num : numbers) {if (num == target) {System.out.println("找到目标值:" + num);break; // 中断循环}}}
}

在示例8中,我们使用 for 循环遍历一个整数数组,当找到目标值 target 时,使用 break 来中断循环,以避免继续迭代。

4.2 continue语句

continue 语句用于跳过当前循环迭代的剩余代码,然后继续下一次迭代。它通常用于处理特定条件下的情况,而不是完全退出循环。

示例9:使用 `continue` 在遇到偶数时跳过输出:

public class ContinueStatementExample {public static void main(String[] args) {for (int i = 1; i <= 5; i++) {if (i % 2 == 0) {continue; // 跳过偶数}System.out.println(i);}}
}

在示例9中,当 i 为偶数时,continue 语句将跳过 System.out.println(i); 的执行,然后继续下一次迭代。

break 和 continue 是在循环中控制执行流程的有用工具。它们可以帮助你根据不同的条件中断循环或跳过特定迭代。

5.小结一下

  1. 复合语句是由一组Java语句组成的代码块,通常用大括号 {} 括起来。它们可以用于组织多个语句,也用于限定局部变量的作用域。
  2. 条件语句是用于根据不同条件执行不同代码块的工具。我们介绍了 if 条件语句和 switch 多分支语句。if 允许根据条件执行不同的代码块,而 switch 用于多个可能情况的情况下执行不同的代码块。
  3. 循环语句允许你重复执行一段代码块。我们介绍了 while 循环,do...while 循环和 for 循环。这些循环结构适用于不同的情况,允许你有效地处理已知或未知次数的迭代。
  4. 循环控制语句包括 break 和 continue。break 用于中断循环的执行,而 continue 用于跳过当前迭代的剩余代码。

6.实践练习


条件语句练习:

  • 编写一个程序,接受用户输入的数字,然后判断它是否是偶数或奇数,并输出相应的消息。
  • 创建一个简单的登陆系统,要求用户输入用户名和密码。如果用户名是 "admin" 并且密码是 "password",则显示欢迎消息,否则显示错误消息。
  • 编写一个程序,接受用户输入的年份,然后判断该年份是否为闰年,并输出相应的消息。闰年条件:能被4整除但不能被100整除,或者能被400整除。


循环语句练习:

  • 使用 for 循环打印出1到100的所有奇数。
  • 使用 while 循环找出一个正整数的所有因子。
  • 使用 do...while 循环实现一个猜数字游戏,程序随机生成一个数字,然后提示用户猜数字,直到用户猜中为止。


循环控制语句练习:

  • 使用 break 语句改进上面的猜数字游戏,如果用户连续猜错5次,就自动结束游戏。
  • 使用 continue 语句编写一个程序,打印出1到100的所有数字,但跳过所有包含数字 7 的数字,例如,跳过 7, 17, 27...
  • 创建一个简单的菜单程序,让用户选择不同的选项(例如,1. 添加新项目,2. 查看项目,3. 退出程序)。使用 switch 语句处理用户的选择。

(以上是九个小问题,下次文章回答)
 

 

相关文章:

Java从入门到精通-流程控制(一)

流程控制 1.复合语句 复合语句&#xff0c;也称为代码块&#xff0c;是一组Java语句&#xff0c;用大括号 {} 括起来&#xff0c;它们可以被视为单个语句。复合语句通常用于以下情况&#xff1a; - 在控制结构&#xff08;如条件语句和循环&#xff09;中包含多个语句。 - …...

MybatisPlus(2)

前言&#x1f36d; ❤️❤️❤️SSM专栏更新中&#xff0c;各位大佬觉得写得不错&#xff0c;支持一下&#xff0c;感谢了&#xff01;❤️❤️❤️ Spring Spring MVC MyBatis_冷兮雪的博客-CSDN博客 上篇我们简单介绍了MybatisPlus的方便之处&#xff0c;这篇来深入了解Myb…...

iOS UITableView上拉加载解决偶然跳动的Bug

最近做项目,测试测出来一个Bug,列表添加了上拉刷新和下拉加载,当我弹窗消失时,调用刷新列表后,在某个手机型号上,偶发列表刷新跳动的bug。(一般在列表上拉加载刷新到最后一页后,再弹窗消失,reload列表,会出现此bug) Bug复现如下:RPReplay_Final1693296737 解决方案…...

MySQL 外键使用详解

1、MySQL 外键约束语法 MySQL 支持外键&#xff0c;允许在表之间进行相关数据的交叉引用&#xff0c;并有助于保持相关数据的一致性。 一个外键关系涉及到一个父表&#xff0c;该父表保存初始列值&#xff0c;和一个子表&#xff0c;子表的列值引用父表的列值。外键约束定义在…...

MongoDB实验——在MongoDB集合中查找文档

在MongoDB集合中查找文档 一、实验目的二、实验原理三、实验步骤1.启动MongoDB数据库、启动MongoDB Shell客户端2.数据准备-->person.json3.指定返回的键4 .包含或不包含 i n 或 in 或 in或nin、$elemMatch&#xff08;匹配数组&#xff09;5.OR 查询 $or6.Null、$exists7.…...

事务的总结

数据库事务 数据库事务是一个被视为单一的工作单元的操作序列。这些操作应该要么完整地执行&#xff0c;要么完全不执行。事务管理是一个重要组成部分&#xff0c;RDBMS 面向企业应用程序&#xff0c;以确保数据完整性和一致性。事务的概念可以描述为具有以下四个关键属性描述…...

[ROS]yolov5-7.0部署ROS

YOLOv5是一种目标检测算法&#xff0c;它是YOLO&#xff08;You Only Look Once&#xff09;系列算法的最新版本。与其它目标检测算法相比&#xff0c;YOLOv5在速度和准确性方面取得了显著的提升。在ROS&#xff08;Robot Operating System&#xff09;中使用Python部署YOLOv5可…...

Java抽象方法、抽象类和接口——第七讲

前言 上一讲,我们深入了解面向对象,介绍了面向对象有三个特征——封装、继承、多态,以及介绍方法的重载和重写,这些都是开发中很常用的特征,基本都尊重面向对象思想。再上一讲我们了解到了继承的时候,子类要重新写父类的方法,才能遵循子类的规则,那么忘记重写怎么办呢?…...

kafka集群之kraft模式

一、概要 Kafka作为一种高吞吐量的分布式发布订阅消息系统&#xff0c;在消息应用中广泛使用&#xff0c;尤其在需要实时数据处理和应用程序活动跟踪的场景&#xff0c;kafka已成为首选服务&#xff1b;在Kafka2.8之前&#xff0c;Kafka强依赖zookeeper来来负责集群元数据的管理…...

虹科案例 | 缆索挖掘机维护—小传感器,大作用!

一、 应用背景 缆索挖掘机 缆索挖掘机的特点是具有坚固的部件&#xff0c;如上部结构、回转环和底盘。底盘是用于移动挖掘机的下部机械部件&#xff0c;根据尺寸和型号的不同&#xff0c;由轮子或履带引导&#xff0c;并承载可转动的上部车厢。回转环连接上部和下部机器部件&am…...

Windows安装FFmpeg说明

下载地址 官网 Download FFmpeg Csdn ffmpeg安装包&#xff0c;ffmpeg-2023-08-28-git-b5273c619d-full-build.7z资源-CSDN文库 解压安装&#xff0c;添加环境变量 命令行输入ffmpeg 安装成功...

电子电路原理题目整理(1)

电子电路原理题目整理&#xff08;1&#xff09; 最近在学习《电子电路原理》&#xff0c;记录一下书后面试题目&#xff0c;答案为个人总结&#xff0c;欢迎讨论。 1.电压源和电流源的区别&#xff1f; 电压源在不同的负载电阻下可提供恒定的负载电压&#xff0c;而电流源对于…...

iPhone 15预售:获取关键信息

既然苹果公司将于9月12日正式举办iPhone 15发布会,我们了解所有新机型只是时间问题。如果你是苹果的狂热粉丝,或者只是一个早期用户,那么活动结束后,你会想把所有的注意力都集中在iPhone 15的预购上——这样你就可以保证自己在发布日会有一款机型。 有很多理由对今年的iPh…...

Kind创建本地环境安装Ingress

目录 1.K8s什么要使用Ingress 2.在本地K8s集群安装Nginx Ingress controller 2.1.使用Kind创建本地集群 2.1.1.创建kind配置文件 2.1.2.执行创建命令 2.2.找到和当前k8s版本匹配的Ingress版本 2.2.1.查看当前的K8s版本 2.2.2.在官网中找到对应的合适版本 2.3.按照版本安…...

MySQL与Oracle数据库通过系统命令导出导入

MySQL导出 mysqldump -uroot -ppassword 库名 表名 --where"s_dtend<2023-05-01 00:00:00 and s_dtend>2023-01-01 00:00:00 and (i_mbr!10000 OR (i_mbr 10000 AND I_ACTV IN (SELECT I_ACTV FROM t_mk_activity WHERE S_DTEND < 2023-05-01 00:00:00)))"…...

从零学算法(剑指 Offer 36)

123.输入一棵二叉搜索树&#xff0c;将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点&#xff0c;只能调整树中节点指针的指向。 为了让您更好地理解问题&#xff0c;以下面的二叉搜索树为例&#xff1a; 我们希望将这个二叉搜索树转化为双向循环链表。…...

【Unity3D】UI Toolkit容器

1 前言 UI Toolkit简介 中介绍了 UI Builder、样式属性、UQuery&#xff0c;本文将介绍 UI Toolkit 中的容器&#xff0c;主要包含 VisualElement、ScrollView、ListView、UI Toolkit&#xff0c;官方介绍详见→UXML elements reference。 2 VisualElement&#xff08;空容器&…...

手把手教你写出第一个C语言程序

Hello, World! 1. 前言2. 准备知识2.1 环境2.2 文件的分类2.3 注释2.3.1 注释的作用2.3.2 注释的两种风格2.3.2.1 C语言的注释风格2.3.2.2 C的注释风格 2.3.3 VS中注释和取消注释的快捷键 3. 开始演示3.1 创建项目3.2 创建源文件3.3 写代码3.4 编译链接运行 4. 代码解释4.1 写主…...

flink维度表关联

分析&回答 根据我们业务对维表数据关联的时效性要求&#xff0c;有以下几种解决方案&#xff1a; 1、实时查询维表 实时查询维表是指用户在Flink 的Map算子中直接访问外部数据库&#xff0c;比如用 MySQL 来进行关联&#xff0c;这种方式是同步方式&#xff0c;数据保证是…...

Docker Compose 安装使用 教程

Docker Compose 1.1 简介 Compose 项目是 Docker 官方的开源项目&#xff0c;负责实现对 Docker 容器集群的 快速编排 。从功能上看&#xff0c;跟 OpenStack 中的 Heat 十分类似。 其代码目前在 https://github.com/docker/compose 上开源。 Compose 定位是 「定义和运行多个…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为&#xff1a;一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...