Java基础篇--循环和选择结构语句

news/2024/10/18 11:16:26/

目录

选择结构:

if...else语句:

switch 语句:

循环结构:

while 循环:

do-while 循环:

for 循环:

增强 for 循环 :

跳转语句

break 关键字

continue 关键字

综合示例


循环和选择结构是 Java 程序中常用的控制语句,用于控制程序的执行流程。下面简要介绍循环和选择结构的语法和用法。

选择结构:

  • if...else语句:

用于根据条件判断是否执行某一段代码块。

语法格式如下:

if(布尔表达式 1){//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){//如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){//如果布尔表达式 3的值为true执行代码
}else {//如果以上布尔表达式都不为true执行代码
}

if 语句后面可以跟 else if…else 语句,这种语句可以检测到多种可能的情况。使用 if,else if,else 语句的时候,需要注意下面几点:

  1. if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。
  2. if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。
  3. 一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。
  • switch 语句:

根据表达式的值匹配不同的 case 分支进行执行。

语法格式如下:

switch (expression) {case value1:// 执行语句块break;case value2:// 执行语句块break;//你可以有任意数量的case语句...default:// 执行语句块}

使用switch 语句的时候,需要注意下面几点: 

  1. 变量类型:switch 语句中的变量类型可以是 byte、short、int、char 或者 String(Java SE 7+)。
  2. 多个 case 语句:switch 语句可以拥有多个 case 语句,每个 case 后面跟一个要比较的值和冒号。
  3. case 语句的值:case 语句中的值的数据类型必须与变量的数据类型相同,且只能是常量或字面常量。
  4. 执行顺序:当变量的值与 case 语句的值相等时,从匹配的 case 语句开始执行,直到遇到 break 语句才会跳出 switch 语句。
  5. break语句:遇到 break 语句时,switch 语句终止,程序跳转到 switch 语句后面的语句执行。如果没有 break 语句,程序会继续执行下一条 case 语句,直到遇到 break 语句为止。
  6. default 分支:switch 语句可以包含一个 default 分支,一般放在最后一个位置。当没有匹配的 case 语句时,会执行 default 分支,它不需要 break 语句。

循环结构:

  • while 循环:

在满足循环条件的情况下,重复执行一段代码块,直到循环条件不成立。

while是最基本的循环,语法格式如下:

while( 布尔表达式 ) {//循环内容
}

只要布尔表达式为 true,循环就会一直执行下去。 

  • do-while 循环:

对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。do…while 循环和 while 循环相似,不同的是,do…while 循环先执行一次循环体的代码块,然后在满足循环条件的情况下重复执行,直到循环条件不成立。

语法格式如下:

do {//代码语句
}while(布尔表达式);

注意:布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。 如果布尔表达式的值为 true,则语句块一直执行,直到布尔表达式的值为 false。 

  • for 循环:

虽然所有循环结构都可以用 while 或者 do...while表示,但 Java 提供了另一种语句 —— for 循环,for循环语句是最常用的循环语句,使一些循环结构变得更加简单。

for循环执行的次数是在执行前就确定的。语法格式如下:

for(初始化表达式; 循环条件; 操作表达式)
{执行语句...
}

关于 for 循环有以下几点说明: 

  1. 初始化表达式:在进入循环之前,执行一次初始化操作。可以声明并初始化循环控制变量。
  2. 循环条件:在每次循环迭代开始之前,检查循环条件的布尔表达式的值。如果为 true,则继续执行循环体;如果为 false,则立即退出循环。
  3. 执行语句:在每次循环迭代时,执行循环体内的语句。
  4. 操作表达式:在每次循环迭代结束后,执行操作表达式。通常用于更新循环控制变量的值。
  5. 回到第2步:在执行完操作表达式后,再次检查循环条件的值。如果条件仍然为 true,则继续执行下一次循环迭代;如果条件为 false,则跳出循环执行循环后面的语句。
  • 增强 for 循环 :

Java5 引入了一种主要用于数组的增强型 for 循环。Java的增强for循环(Enhanced for Loop),也称为for-each循环,是用于遍历数组或集合的简化语法形式。它可以方便地迭代访问数组或集合中的元素,提供了一种简洁的方式来处理这些容器。

增强for循环的语法如下:

for (元素类型 变量名 : 数组或集合) {// 执行语句...
}

其中,元素类型表示数组或集合中元素的类型,变量名表示在每次迭代中接收当前元素的变量名,数组或集合则是要进行迭代遍历的对象。

使用增强for循环时,遍历过程会自动按顺序取出数组或集合中的每一个元素,将其赋值给变量,并执行相应的代码块。无需指定索引或进行手动迭代控制,循环会自动结束。

例如,在遍历一个整型数组时,可以使用增强for循环:

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

上述代码会依次输出数组中的每个元素:1、2、3、4、5。

需要注意的是,增强for循环适用于只对容器中的每个元素进行访问和处理的情况,无法通过它来修改容器中的元素或获取迭代索引。

跳转语句

break 关键字

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。

break 跳出最里层的循环,并且继续执行该循环下面的语句。

continue 关键字

在任何循环结构(for循环、while循环、do-while循环)中使用continue关键字,它的作用是立即跳过当前循环迭代的剩余代码,直接进入下一次循环迭代。

具体而言:

  • 在for循环中,当程序执行到continue语句时,会立即跳转到更新语句部分,然后进行下一次循环迭代。
  • 在while或者do...while循环中,当程序执行到continue语句时,会立即跳转到布尔表达式的判断语句,然后继续进行下一轮的循环判断。

这样可以使程序在满足某个条件时,跳过当前循环迭代的代码,进入下一次循环,从而实现特定的控制流程。

需要注意的是,continue只会影响当前所在的单个循环体,不会跳出整个循环。如果想完全终止循环,可以使用break关键字。

综合示例

下面一个综合运用了选择语句和循环结构的Java代码示例。

public class LoopAndSelectionExample {public static void main(String[] args) {int[] numbers = {1, 2, 3, 4, 5};// 使用for循环遍历数组元素for (int num : numbers) {if (num % 2 == 0) {System.out.println("偶数:" + num);} else {System.out.println("奇数:" + num);}// 使用switch语句根据数字的值做出不同的处理switch(num) {case 1:System.out.println("数字为1");break;case 2:System.out.println("数字为2");break;default:System.out.println("其他数字");break;}// 如果数字为3,则跳过当前迭代,继续下一次迭代if (num == 3) {continue;}// 如果数字为5,则终止整个循环else if (num == 5) {break;}int count = 0;// 使用while循环进行计数输出while (count < num) {System.out.print(count + " ");count++;}System.out.println();int i = 0;// 使用do-while循环进行计数输出do {System.out.print(i + " ");i++;} while (i <= num);System.out.println();}}
}

这段代码演示了如何使用循环结构和选择语句来处理一个整型数组。在for循环中,遍历数组元素并判断奇偶性,并执行相应的输出语句。使用switch语句根据数字的值做出不同的处理。通过if条件判断使用continue关键字跳过数字为3的迭代,并使用break关键字终止循环遍历当数字为5时。同时,使用while循环和do-while循环分别按照数字大小输出计数。


http://www.ppmy.cn/news/1026405.html

相关文章

【loadbalancer】还在用Ribbon?试试Spring自带的LoadBalancer吧

Spring Cloud LoadBalancer是Spring Cloud官方自己提供的客户端负载均衡器, 用来替代Ribbon。 Spring官方提供了两种客户端都可以使用loadbalancer&#xff1a; RestTemplate&#xff1a;Spring提供的用于访问Rest服务的客户端&#xff0c;RestTemplate提供了多种便捷访问远程…

python小白之matplotlib使用实战项目:随机漫步

文章目录 随机漫步1.1 创建RandomWalk类1.2 选择方向1.3 绘制随机漫步图1.4 模拟多次随机漫步1.5 设置随机漫步图样式1.5.1 给点着色1.5.2 重新绘制起点和终点1.5.3 隐藏坐标轴1.5.4 增加点数1.5.5 调整图片尺寸以适应屏幕 附录&#xff08;项目代码&#xff09;random_walk.py…

3.3 Postman基础

1. Postman概述 Postman是一个接口测试工具&#xff0c;Postman相当于一个客户端&#xff0c;可以模拟用户发起的各类HTTP请求&#xff0c;将请求数据发送至服务端&#xff0c;获取对应的响应结果。 Postman版本&#xff1a;Postman-win64-9.15.2-Setup.exe。 2. Postman的参…

jQuery练习题

目录 1.制作QQ简易聊天框 2.制作课工场论坛发帖 1.制作QQ简易聊天框 <script>$(function () {var touxiang new Array("images/head01.jpg","images/head02.jpg","images/head03.jpg");var names new Array("时尚伊人", &qu…

自动驾驶数据集汇总下载链接

欢迎补充&#xff01; 下载数据集的官网有哪些&#xff1f; https://www.autodl.com/shareData 深度估计 NYU&#xff1a; 单目深度估计NYU数据集注&#xff1a;安装BTS论文&#xff0c;trainval一共3w左右&#xff0c;很多地方下载的数据不全&#xff0c;或者下载很多不相关的…

【博客699】docker daemon预置iptables剖析

docker daemon预置iptables剖析 没有安装docker的机器&#xff1a;iptables为空&#xff0c;且每个链路的默认policy均为ACCEPT [root~]# iptables-save[root ~]# iptables -t raw -nvL Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt …

阿里云对象存储服务OSS

1、引依赖 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.15.1</version> </dependency> <dependency><groupId>javax.xml.bind</groupId><artifa…

PyMySQL库版本引起的python执行sql编码错误

前言 长话短说&#xff0c;之前在A主机&#xff08;centos7.9&#xff09;上运行的py脚本拿到B主机上&#xff08;centos7.9&#xff09;运行报错&#xff1a; UnicodeEncodeError: latin-1 codec cant encode characters in position 265-266: ordinal not in range(256)两个…