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 语句处理用户的选择。

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

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ROS机器人编程---------(二)ROS中的核心概念

ROS机器人编程 ROS中的核心概念 ROS的通信机制 在ROS中结点是最小单元&#xff0c;比如说机器人的遥控器可以作为一个控制结点&#xff0c;机器人上的摄像头也可以看作一个结点&#xff0c;ROS通过协调各个结点来实现 在启动任何ROS结点之前&#xff0c;都必须先启动ROS Mas…

Upload-labs 1~15 通关详细教程

文章目录 Upload-labs 1~15 通关详细教程Pass-01-前端js验证Pass-02-后端MIME验证Pass-03-黑名单验证Pass-04-黑名单验证.htaccessPass-05-文件后缀名大小写绕过Pass-06-文件后缀名空格绕过Pass-07-文件后缀名点绕过Pass-08-文件后缀名::$DATA绕过Pass-09-点空格点空格绕过Pass…

【小沐学Unity3d】3ds Max 骨骼动画制作(CAT、Character Studio、Biped、骨骼对象)

文章目录 1、简介2、 CAT2.1 加载 CATRig 预设库2.2 从头开始创建 CATRig 3、character studio3.1 基本描述3.2 Biped3.3 Physique 4、骨骼系统4.1 创建方法4.2 简单示例 结语 1、简介 官网地址&#xff1a; https://help.autodesk.com/view/3DSMAX/2018/CHS https://help.aut…

R语言nlme、nlmer、lme4用(非)线性混合模型non-linear mixed model分析藻类数据实例...

原文链接&#xff1a;http://tecdat.cn/?p23426 混合线性模型&#xff0c;又名多层线性模型(Hierarchical linear model)。它比较适合处理嵌套设计(nested)的实验和调查研究数据&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 相关视频 序言 此外&#xff0…

使用Python进行Base64编码和解码

假设您有一个想要通过网络传输的二进制图像文件。您很惊讶对方没有正确接收该文件 - 该文件只是包含奇怪的字符&#xff01; 嗯&#xff0c;您似乎试图以原始位和字节格式发送文件&#xff0c;而所使用的媒体是为流文本而设计的。 避免此类问题的解决方法是什么&#xff1f;答…

【Vue3】组件递归

【Vue3】组件递归 实现效果 通过传入一个数字&#xff0c;实现数字次循环 父组件 <script setup> import { ref } from "vue"; import RecursionMe from "./components/RecursionMe/index.vue";const level ref(0);const add () > level.val…

接口自动化测试 —— JMeter断言基本使用

断言 断言&#xff1a;就是让程序判断预期结果和实际结果是否一致 注意&#xff1a;请求发起成功了&#xff0c;不代表着一定符合预期的结果。 JMeter中常用断言 响应断言 JSON断言 持续时间断言 响应断言 步骤&#xff1a;&#xff1a;线程组——HTTP取样器——断言——…

解决springboot项目中的groupId、package或路径的混淆问题

对于像我一样喜欢跳跃着学习的聪明人来说&#xff0c;肯定要学springboot&#xff0c;什么sevlet、maven、java基础&#xff0c;都太老土了&#xff0c;用不到就不学。所以古代的聪明人有句话叫“书到用时方恨少”&#xff0c;测试开源项目时&#xff0c;编译总是报错&#xff…

Linux-Centos7安装Docker

文章目录 一、前言二、Docker安装1、Docker及系统版本2、Docker的自动化安装3、Docker手动安装3.1、卸载Docker&#xff08;可选&#xff09;3.2、设置源仓库3.3、Docker安装3.4、Docker启动3.5、验证是否安装成功3.5.1、拉取镜像3.5.2、查看镜像3.5.3、运行镜像 3.6、删除Dock…

http和https的区别?

什么是 HTTP&#xff1f; HTTP是一种互联网数据传输协议&#xff0c;用于在网络服务器和客户端之间进行数据传输。作为万维网的基础&#xff0c;HTTP协议允许网络浏览器向网络服务器发送请求&#xff0c;服务器则会返回响应。HTTP协议基于文本&#xff0c;因此传输的数据是人类…

多源最短路径算法:Floyd-Warshall算法分析

文章目录 图的邻接矩阵 一.Floyd-Warshall算法思想(基于动态规划)二.Floyd-Warshall算法接口笔记附录:单源最短路径--Bellman-Ford算法1.Bellman-Ford算法接口核心部分2.Bellman-Ford算法接口 图的邻接矩阵 namespace Graph_Structure {//Vertex是代表顶点的数据类型,Weight是…

Approaching (Almost) Any Machine Learning Problem中译版

前言 Abhishek Thakur&#xff0c;很多kaggler对他都非常熟悉&#xff0c;2017年&#xff0c;他在 Linkedin 发表了一篇名为Approaching (Almost) Any Machine Learning Problem的文章&#xff0c;介绍他建立的一个自动的机器学习框架&#xff0c;几乎可以解决任何机器学习问题…

JY901B智能9轴加速度计陀螺仪角度传感器

今日学习使用JY901B智能9轴加速度计陀螺仪角度传感器 本文会先使用上位机获取数据作演示&#xff0c;后介绍它的数据表发送原理。 文章提供详细的原理讲解&#xff0c;测试工程下载&#xff0c;代码讲解&#xff0c;本人有多注释的习惯&#xff0c;希望对大家有帮助。 我的J…

【LeetCode】剑指 Offer <二刷>(4)

目录 题目&#xff1a;剑指 Offer 09. 用两个栈实现队列 - 力扣&#xff08;LeetCode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 题目&#xff1a;剑指 Offer 10- I. 斐波那契数列 - 力扣&am…

FFmpeg5.0源码阅读——FFmpeg大体框架

摘要&#xff1a;前一段时间熟悉了下FFmpeg主流程源码实现&#xff0c;对FFmpeg的整体框架有了个大概的认识&#xff0c;因此在此做一个笔记&#xff0c;希望以比较容易理解的文字描述FFmpeg本身的结构&#xff0c;加深对FFmpeg的框架进行梳理加深理解&#xff0c;如果文章中有…

Linux 常见命令操作

一、目录管理 1.1 列出目录 ls # ls 命令 # -a 参数&#xff0c;查看全部的文件&#xff0c;包括隐藏的文件 # -l 参数&#xff0c;列出所有的文件&#xff0c;包括文件的属性和权限&#xff0c;不显示隐藏文件 [rootlocalhost /]# ls bin boot dev etc home lib lib64…

C# Dapper 操作Oracle数据库

nuget安装内容 1.配置连接字符串 OracleConnectionString这个可用 {"Logging": {"LogLevel": {"Default": "Information","Microsoft.AspNetCore": "Warning"}},"AllowedHosts": "*","…

前几天写的博客被选中进入【CSDN月度精选】榜单

小收获&#xff0c;记录一下&#xff0c;哈哈 这个貌似是CSDN给的排名和得分&#xff1a;

中东 Shopify 如何使用 Bytebase 构建一站式数据库开发工作流

公司简介 Salla 是一家 2016 年成立&#xff0c;位于沙特麦加的自建站电商平台。 作为中东 Shopify&#xff0c;其最大的特点是支持阿拉伯语建站&#xff0c;并且提供更多适应中东地区特点的本地化服务。截止目前&#xff0c;已有 47,000 家店铺入驻 Salla&#xff0c;商品销售…

云计算环境中高性能计算的挑战与对策

文章目录 云计算中的高性能计算挑战1. 资源竞争&#xff1a;2. 网络延迟&#xff1a;3. 数据传输效率&#xff1a;4. 虚拟化开销&#xff1a;5. 节点异构性&#xff1a; 高性能计算在云计算环境中的对策1. 定制化虚拟机镜像&#xff1a;2. 弹性资源调整&#xff1a;3. 高效数据…