JAVA基础 - 控制语句

目录

一. 简介

二. 分支语句

三. 循环语句

四. 跳转语句



一. 简介

在 Java 中,控制语句用于控制程序的执行流程,根据不同的条件决定执行哪些代码块。常见的控制语句包括:

  1. if-else 语句:根据条件的真假执行不同的代码块。

  2. switch 语句:根据表达式的值选择执行不同的代码分支。

  3. for 循环:用于重复执行一段代码特定的次数。

  4. while 循环:只要条件为真,就重复执行循环体中的代码。

  5. do-while 循环:先执行一次循环体,然后只要条件为真,就继续执行。

这些控制语句使程序能够根据不同的情况做出决策和重复执行特定的操作,从而实现更复杂和灵活的逻辑。

二. 分支语句

在 Java 中,分支语句用于根据不同的条件执行不同的代码块。主要的分支语句包括 if-else 语句和 switch 语句。

1. if-else 语句

if-else 语句根据条件的真假来决定执行哪个代码块。

  • 简单的 if 语句:
if (condition) {// 当条件为真时执行的代码
}
  • if-else 语句:
if (condition) {// 当条件为真时执行的代码
} else {// 当条件为假时执行的代码
}
  • 嵌套的 if-else 语句:
if (condition1) {// 当条件 1 为真时执行的代码
} else if (condition2) {// 当条件 1 为假且条件 2 为真时执行的代码
} else {// 当前面的条件都为假时执行的代码
}

2. switch 语句

switch 语句根据一个表达式的值来选择执行不同的代码分支。

switch (expression) {case value1:// 当表达式的值等于 value1 时执行的代码break;case value2:// 当表达式的值等于 value2 时执行的代码break;// 可以有多个 case 分支default:// 当表达式的值与前面的 case 都不匹配时执行的代码
}

需要注意以下几点:

  • expression 的类型通常为 byte 、 short 、 int 、 char ,从 Java 7 开始也可以是 String 类型。
  • 每个 case 后面的值必须是常量,且不能重复。
  • break 语句用于在执行完一个 case 分支后跳出 switch 语句。如果没有 break ,程序会继续执行下一个 case 分支的代码,直到遇到 break 或者 switch 语句结束。

以下是一个示例代码,展示了 if-else 和 switch 语句的使用:

public class BranchingStatementsExample {public static void main(String[] args) {int num = 2;// if-else 示例if (num == 1) {System.out.println("Number is 1");} else if (num == 2) {System.out.println("Number is 2");} else {System.out.println("Number is neither 1 nor 2");}// switch 示例switch (num) {case 1:System.out.println("In switch: Number is 1");break;case 2:System.out.println("In switch: Number is 2");break;default:System.out.println("In switch: Number is neither 1 nor 2");}}
}

三. 循环语句

在 Java 中,常见的循环语句有 for 循环、while 循环和 do-while 循环。

1. for 循环

for 循环通常用于已知循环次数的情况。它的语法结构如下:

for (初始化表达式; 条件表达式; 更新表达式) {// 循环体
}

例如:

for (int i = 0; i < 5; i++) {System.out.println(i);
}

在上述代码中,首先执行初始化表达式 int i = 0 ,然后判断条件表达式 i < 5 ,如果为真,则执行循环体,执行完循环体后,执行更新表达式 i++ ,然后再次判断条件表达式,如此循环,直到条件表达式为假。

2. while 循环

while 循环在执行循环体之前先判断条件,如果条件为真,则执行循环体。其语法结构为:

while (条件表达式) {// 循环体
}

例如:

int i = 0;
while (i < 5) {System.out.println(i);i++;
}

3. do-while 循环

do-while 循环先执行一次循环体,然后再判断条件,如果条件为真,则继续执行循环体。它的语法结构是:

do {// 循环体
} while (条件表达式);

例如:

int i = 0;
do {System.out.println(i);i++;
} while (i < 5);

4. for-each

在 Java 中,for-each 循环也称为增强型 for 循环,它提供了一种更简洁和方便的方式来遍历数组或实现了 java.lang.Iterable 接口的集合(如 ArrayList 、 LinkedList 等)。

for-each 循环的语法如下:

for (元素类型 元素变量 : 数组或集合) {// 循环体
}

以下是使用 for-each 循环遍历数组的示例:

int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {System.out.println(num);
}

以下是遍历 ArrayList 的示例:

import java.util.ArrayList;
import java.util.List;public class ForEachExample {public static void main(String[] args) {List<String> names = new ArrayList<>();names.add("Alice");names.add("Bob");names.add("Charlie");for (String name : names) {System.out.println(name);}}
}

使用 for-each 循环的优点是代码简洁,并且避免了在传统 for 循环中可能出现的越界错误。然而,它不能用于在遍历过程中修改数组或集合的元素(如果需要修改,仍需要使用传统的 for 循环)。

四. 跳转语句

在 Java 中,跳转语句用于改变程序的执行流程。常见的跳转语句有 break 、 continue 和 return 。

break 语句

  • 用于终止循环(如 for 、 while 、 do-while )或 switch 语句的执行,使程序跳出当前循环体或 switch 块。
  • 示例:
    for (int i = 0; i < 10; i++) {if (i == 5) {break;}System.out.println(i);}

在上述代码中,当 i 的值为 5 时,break 语句会使循环终止。

continue 语句

用于跳过当前循环的本次迭代,直接开始下一次迭代。

示例:

    for (int i = 0; i < 10; i++) {if (i % 2 == 0) {continue;}System.out.println(i);}

在这个例子中,当 i 是偶数时,continue 语句会使程序跳过本次循环体中后续的代码,直接进行下一次循环。

return 语句

用于从方法中返回值,并结束方法的执行。

示例:

    public int add(int num1, int num2) {int sum = num1 + num2;return sum;}

在上述方法中,计算两个数的和后,使用 return 语句将结果返回。

跳转语句在控制程序流程方面非常有用,但应谨慎使用,以确保程序的逻辑清晰和可维护性。

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

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

相关文章

DockerCompose 安装环境

1. Redis version: 3 services:redis:image: redis:6.2.12container_name: redisports:- "6379:6379"environment:TZ: Asia/Shanghaivolumes:# 本地数据目录要先执行 chmod 777 /usr/local/docker/redis/data 赋予读写权限&#xff0c;否则将无法写入数据- /usr/loc…

整合EasyExcel实现灵活的导入导出java

引入pom依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId></dependency>实现功能 结合Vue前端&#xff0c;实现浏览器页面直接导出日志文件实现文件的灵活导入文件导出 3. 实体类 实体类里有自定义转…

centos系统使用mysqldump数据备份与恢复

文章目录 使用mysqldump备份数据库一、数据库备份1. 基础备份2. 额外选项(一般组合使用) 二、数据库恢复 使用mysqldump备份数据库 一、数据库备份 1. 基础备份 #备份单个数据库 mysqldump -u 用户名 -p 数据库名 > 备份文件.sql#备份多个数据库 mysqldump -u 用户名 -p …

全国区块链职业技能大赛国赛考题区块链应用后端功能开发

任务3-2:区块链应用后端功能开发 1.请基于已有的项目,开发完善IndexController类,编写添加食品生产信息的方法,实现食品信息的添加功能,并测试功能完整性。 本任务具体要求如下: (1)开发文件IndexController.java中的produce方法,请求接口为/produce; (2)开发…

PHP字符串

PHP 中的字符串是用来存储文本的数据类型。在 PHP 中&#xff0c;字符串可以用单引号&#xff08;&#xff09;、双引号&#xff08;"&#xff09;或定界符&#xff08;heredoc 或 nowdoc 语法&#xff09;来定义。下面是一个关于 PHP 字符串的详细教程&#xff0c;包括命…

Spark实时(一):StructuredStreaming 介绍

文章目录 StructuredStreaming 介绍 一、SparkStreaming实时数据处理痛点 1、复杂的编程模式 2、SparkStreaming处理实时数据只支持Processing Time 3、微批处理&#xff0c;延迟高 4、精准消费一次问题 二、StructuredStreaming概述 三、​​​​​​​​​​​​​​…

BGP选路之AS-PATH

原理概述 当一台BGP路由器中存在多条去往同一目标网络的BGP路由时&#xff0c;BGP协议会对这些BGP路由的属性进行比较&#xff0c;以确定去往该目标网络的最优BGP路由。首先要比较的属性是 Preferred Value&#xff0c;然后是Local Preference&#xff0c;再次是路由生成方式&a…

算法学习笔记:回溯法

回溯法有“通用的解题法”之称。用它可以系统地搜索一个问题的所有解或任一解。回溯法是一个既带有系统性又带有跳跃性的搜索算法。它在包含问题的所有解的解空间树中&#xff0c;按照深度优先的策略&#xff0c;从根节点出发搜索解空间树。算法搜索至解空间树的任一节点时&…

【Android Studio】整合okhttp发送get和post请求(提供Gitee源码)

前言&#xff1a;本篇博客教学大家如何使用okhttp发送同步/异步get请求和同步/异步post请求&#xff0c;这边博主把代码全部亲自测试过了一遍&#xff0c;需要源码的可以在文章最后自行拉取。 目录 一、导入依赖 二、开启外网访问权限 三、发送请求 3.1、发送同步get请求…

关于pycharm上push项目到gitee失败原因

版权声明&#xff1a;本文为博主原创文章&#xff0c;如需转载请贴上原博文链接&#xff1a;https://blog.csdn.net/u011628215/article/details/140577821?spm1001.2014.3001.5502 前言&#xff1a;最近新建项目push上gitee都没有问题&#xff0c;但是当在gitee网站进行了一个…

2024在线PHP加密网站源码

源码介绍 2024在线PHP加密网站源码 更新内容: 1.加强算法强度 2.优化模版UI 加密后的代码示例截图 源码下载 https://download.csdn.net/download/huayula/89568335

kafka集群搭建-使用zookeeper

1.环境准备&#xff1a; 使用如下3台主机搭建zookeeper集群&#xff0c;由于默认的9092客户端连接端口不在本次使用的云服务器开放端口范围内&#xff0c;故端口改为了8093。 172.2.1.69:8093 172.2.1.70:8093 172.2.1.71:8093 2.下载地址 去官网下载&#xff0c;或者使用如…

迈向通用人工智能:AGI的到来与社会变革展望

正文&#xff1a; 随着科技的飞速发展&#xff0c;通用人工智能&#xff08;AGI&#xff09;的来临似乎已不再遥远。近期&#xff0c;多位行业领袖和专家纷纷预测&#xff0c;AGI的到来时间可能比我们想象的要早。在这篇博客中&#xff0c;我们将探讨AGI的发展趋势、潜在影响以…

Mysql的主从复制(重要)和读写分离(理论重要实验不重要)

一、主从复制&#xff1a;架构一般是一主两从。 1.主从复制的模式&#xff1a; mysql默认模式为异步模式&#xff1a;主库在更新完事务之后会立即把结果返回给从服务器&#xff0c;并不关心从库是否接收到以及从库是否处理成功。缺点&#xff1a;网络问题没有同步、防火墙的等…

JAVA零基础小白自学日志——第二十二天

文章目录 1.接口的方法[1].先来说说接口的默认方法[2].接口的静态方法 2.接口与抽象类的区别 今日提要&#xff1a;接口的静态方法和默认方法&#xff0c;接口与抽象类的区别 1.接口的方法 首先我们需要明确的是接口是一个抽象方法集&#xff0c;那就会有人问&#xff0c;为啥…

vue3-video-play 导入 以及解决报错

npm install vue3-video-play --save # 或者 yarn add vue3-video-play import Vue3VideoPlay from vue3-video-play; import vue3-video-play/dist/style.css; app.use(Vue3VideoPlay) <template><div id"main-container-part"><div class"al…

git配置name和email

git配置name和email 1、下载好git之后&#xff0c;右击git bash&#xff0c;使用git config --global --list 查看配置信息&#xff0c;会出现以下错误 $ git config --global --list fatal: unable to read config file C:/Users/xxx/.gitconfig: No such file or directory…

MySQL常见指令

MySQL中的数据类型 大致分为五种&#xff1a;数值&#xff0c;日期和时间&#xff0c;字符串&#xff0c;json&#xff0c;空间类型 每种类型也包括也一些不同的子类型&#xff0c;根据需要来选择。 如数值类型包括整数类型和浮点数类型 整数类型根据占用的存储空间的不同 又…

spice qxl-dod windows驱动笔记1

KMOD驱动是微软提供的一个Display Only驱动。 Windows驱动的入口函数是 DriverEntry ,所以显示Mini小端口驱动程序也不例外。 和其它Mini小端口驱动的入口函数实现一致&#xff0c;在其 DriverEntry 只做一件事&#xff0c;就是分配系统指定的一个结构体&#xff0c;然后调用框…

Github遇到的问题解决方法总结(持续更新...)

1.github每次push都需要输入用户名和token的解决方法 push前&#xff0c;执行下面命令 &#xff1a; git config --global credential.helper store 之后再输入一次用户名和token之后&#xff0c;就不用再输入了。 2.git push时遇到“fatal: unable to access https://githu…