Java 控制语句全解析:if、switch、循环及控制语句详解

ops/2024/12/23 18:46:20/

一、if 选择结构:条件判断与多分支选择

在这里插入图片描述
if 语句是最基本的条件判断语句,根据表达式的真假来决定是否执行某段代码。可以通过 else if 来判断多个条件,或者使用 else 来处理所有条件都不成立的情况。

代码示例::

java">int num = 1;
if (num == 1) {System.out.println("壹");
} else if (num == 2) {System.out.println("贰");
} else if (num == 3) {System.out.println("参");
} else {System.out.println("其他");
}

执行结果:

详细解析:

  • 程序通过 if 语句判断变量 num 的值,并根据条件输出对应的中文数字。如果条件都不成立,执行 else 部分的代码。

使用建议:

  • 当需要判断多个条件时,使用 if-else 是一种清晰的做法。
  • if 语句适合用于条件不多的简单逻辑判断。

二、switch 选择结构:多分支选择的最佳实践

在这里插入图片描述
switch 语句根据变量的值跳转到对应的 case 语句处执行,常用于多个条件分支的选择结构中。switch 能够提升代码的可读性,尤其是在判断固定值时。

语法:

java">switch (表达式) {case1:// 代码块break;case2:// 代码块break;default:// 默认代码块
}

1.代码示例:

java">int numTwo = 1;
switch (numTwo) {case 1:System.out.println("壹");case 2:System.out.println("贰");break;case 3:System.out.println("参");break;default:System.out.println("没有匹配项");
}

执行结果:

壹
贰
  • 注意:case 后没有 break 时,代码会继续执行后续的 case,直到遇到 breakswitch 语句的结束。

2.代码示例(字符串类型):

java">String computer = "小米";
switch (computer) {case "办公本":System.out.println("办公本");break;case "游戏本":System.out.println("游戏本");break;default:System.out.println("没有匹配项!");break;
}

执行结果:

没有匹配项!

解释:

  • switch 语句会根据表达式的值跳转到匹配的 case 标签,并执行对应的代码块。
  • 如果没有匹配的 case,则执行 default 部分。

使用建议:

  • switch 语句适合用于多分支的判断,尤其当有多个固定值判断时,它的代码结构更清晰。
  • 不支持 long 类型(仅支持 byteshortintchar 和 枚举 类型)。

switch和if的区别:debug
1.switch:会直接跳到相匹配的case
2.if:从上到下挨个判断 -> 实际开发主要用if做判断,灵活

三、while 循环结构:条件判断循环的基本用法

在这里插入图片描述
while 循环是一种常见的循环结构,它会在每次执行之前检查循环条件。如果条件为 true,则执行循环体;否则,跳出循环。

语法:

java">while (条件) {// 循环体// 步进表达式
}

代码示例:

java">int i = 1;
while (i < 10) {System.out.print(i + " ");i++;  // i自增1
}

执行结果:

1 2 3 4 5 6 7 8 9

解释:

  • while 循环在进入循环前检查条件,如果条件成立就进入循环体。
  • 循环体内可以修改控制条件的变量,确保循环最终退出。

使用建议:

  • 当循环次数未知,且需要动态判断时,使用 while 循环。
  • 确保循环内有使条件为假的语句,否则会导致死循环。

四、do...while 循环结构:先执行后判断,确保循环至少一次


do...while 循环与 while 循环类似,区别在于 do...while 会先执行循环体,再判断条件,确保循环体至少执行一次。

语法:

java">do {// 循环体
} while (条件);

代码示例::

java">int i = 1;
int sum = 0;
do {sum += i;  // 累加 i 的值i++;
} while (i <= 100);
System.out.println("1 + 2 + 3 + ... + 100 = " + sum);

执行结果:

1 + 2 + 3 + ... + 100 = 5050

解释:

  • do...while 保证循环体至少执行一次,即使条件一开始为 false。
  • 适用于必须执行至少一次操作的场景。

使用建议:

  • 如果循环体必须至少执行一次,使用 do…while 更为合适。

五、for 循环结构:计数循环与固定次数的完美配合

在这里插入图片描述
for 循环是一种非常常见的计数循环结构,通常用于已知循环次数的情况。它通过初始化条件、判断条件和循环变量更新来控制循环的执行。

一件事或者一段代码在反复执行,我们就可以考虑使用循环语句了

语法:

java">for (初始化; 条件; 迭代) {// 循环体
}

for循环代码示例1:

java">
for (int i = 1; i <= 10; i++) {System.out.print(i + " ");
}

执行结果:

1 2 3 4 5 6 7 8 9 10

for循环代码示例2:

求1~999之间的水仙花数

java">for (int i = 100; i <= 999; i++) {int ge = i % 10;                  // 获取个位int shi = i / 10 % 10;            // 获取十位int bai = i / 100;                // 获取百位if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {System.out.print(i + "; ");}
}

执行结果:

153370371407

解释:

  • for 循环通常用于已知循环次数的情况,代码结构简洁,易于理解。

使用建议:

  • 使用 for 循环时,适合处理循环次数固定的任务。

六、breakcontinuereturn:循环控制语句的灵活运用

1.代码演示(break):

java">for (int i = 1; i <= 10; i++) {if (i == 5) {break;  // 当 i == 5 时跳出循环}System.out.print(i + " ");
}

执行结果:

1 2 3 4

详细解析(break):

break 语句强制退出当前的循环。当 i 达到 5 时,循环被打断,不再执行后续的迭代。

2.代码演示(continue):

java">for (int i = 1; i <= 10; i++) {if (i % 2 == 0) {continue;  // 跳过偶数}System.out.print(i + " ");
}

执行结果:

1 3 5 7 9

详细解析(continue):

  • continue 语句用于跳过当前循环的迭代,直接开始下一次循环。在本例中,偶数被跳过,只输出奇数。

3.代码演示(return):

java">public static void testReturn() {for (int i = 1; i <= 10; i++) {if (i == 5) {return;  // 退出方法}System.out.print(i + " ");}
}

执行结果:

1 2 3 4

详细解析(return):

  • return 语句用于立即结束当前方法的执行。在此例中,当 i5 时,方法提前退出,后续的数字不再被打印。

七、Math 类的使用:生成随机数及常用数学操作

Java 中的 Math 类提供了常用的数学计算方法,最常用的就是 Math.random(),它可以生成一个 01 之间的随机数。

代码示例::

java">int number = (int)(6 * Math.random());  // 生成 0 到 5 之间的随机整数
System.out.println(number);

解释:

  • Math.random() 返回一个 [0.0, 1.0) 区间的 double 类型随机数。
  • 通过将其乘以 6 并转换为 int 类型,就能得到 0 到 5 之间的随机整数。

http://www.ppmy.cn/ops/144362.html

相关文章

Leetcode-208. 实现Trie(前缀树)

前缀树是一个由“路径”和“节点”组成多叉树结构。由根节点出发&#xff0c;按照存储字符串的每个字符&#xff0c;创建对应字符路径&#xff0c;以此实现快速查找单词或是否为前缀的功能。 此题要求简单&#xff0c;只需实现下面几种功能&#xff1a; Trie() 初始化前缀树对…

AMS1117芯片驱动电路·降压芯片的驱动电路详解

目录 AMS1117常见封装 AMS1117不同系列 AMS1117驱动电路 参考数据手册 编写不易&#xff0c;仅供学习&#xff0c;请勿搬运&#xff0c;感谢理解 相同LDO芯片驱动专栏文章 LM7805系列降压芯片驱动电路降压芯片驱动电路详解-CSDN博客 ME6211C系列降压芯片驱动电路降压芯片…

浏览器引入elasticsearch-head插件

elasticsearch-head插件下载&#xff1a; 链接: https://pan.baidu.com/s/1Dz3aU42HZCNg45iJoDOsMg?pwduvhg 提取码: uvhg 1、打开浏览器设置 2、选择拓展程序 3、选择elasticsearch-head插件下载 4、打开es-head插件 5、修改ip 6、登录

Neo4j 图数据库安装与操作指南(以mac为例)

目录 一、安装前提条件 1.1 Java环境 1.2 Homebrew&#xff08;可选&#xff09; 二、下载并安装Neo4j 2.1 从官方网站下载 2.1.1 访问Neo4j的官方网站 2.1.2 使用Homebrew安装 三、配置Neo4j 3.1 设置环境变量(可选) 3.2 打开配置文件(bash_profile) 3.2.1 打开终端…

环境变革下 B2B 销售的转型与创新:开源 AI 智能名片与 S2B2C 商城小程序的助力

摘要&#xff1a;本文探讨了在信息科技与互联网迅猛发展所引发的环境改变背景下&#xff0c;B2B 销售工作面临的挑战与机遇。深入分析了传统销售模式的局限性以及新环境对销售人员素质和能力的要求&#xff0c;提出从提供“信息”向提供“业务价值”转变的必要性。同时&#xf…

前端海报生成的不同方案和优劣

加入我们一起学习&#xff0c;天天进步 一、背景 工作中做了很多生成海报的功能&#xff0c;不同需求&#xff0c;不同场景&#xff0c;使用了几种方案&#xff0c;各有优劣。一直想要整理一下&#xff0c;但这个过程中的思考和遇到的问题没有记录下来&#xff0c;比如图片的跨…

Ubuntu硬盘分区及挂载(命令行)

文章目录 一、简介二、硬盘分区三、格式化分区四、自动挂载分区五、调整分区大小小结 一、简介 创建磁盘分区首先需要找出Linux系统中的物理磁盘&#xff0c;在Linux中采用了一种标准格式来为硬盘分配设备名称。 SATA驱动器和SCSI驱动器&#xff1a;设备命名格式为/dev/sdx&a…

0.gitlab ubuntu20.04 部署问题解决

安装依赖&#xff1a; ① sudo apt-get update 出现&#xff1a; 解决方式&#xff1a; 去 /etc/apt/sources.list.d 这个目录删除或注释对应的list文件 第三方软件的源一般都以list文件的方式放在 /etc/apt/sources.list.d 这个目录 重新运行sudo apt-get update 安装…