1.介绍

从本质上讲,程序是一系列指令。控制结构是可以改变我们如何执行这些指令的代码块。
在本教程中,我们将探讨Java中的控制结构。
有三种控制结构:

  • 条件分支,用于在两条或多条路径之间进行选择。Java中有三种类型:if/else/elseif、三元运算符和switch。
  • 循环;用于迭代多个值/对象并重复运行特定代码块的循环。Java中的基本循环类型是for、while和do-while。
  • 分支语句,用于改变循环中的控制流。Java中有两种类型:break和continue。

2.if/else/else if结构

if/else语句是最基本的控制结构,也是众多编程语言的基础。必须熟练掌握。
虽然if可以单独使用,但最常见的使用场景是使用if/else在两个路径之间进行选择:

if (count > 2) {
System.out.println("Count is higher than 2");
} else {
System.out.println("Count is lower or equal than 2");
}

理论上,我们可以无限地链接或嵌套if/else块,但这会损害代码的可读性,所以不建议这样做。

我们将在本文的其余部分探讨其他语句。

3.三元表达式

我们可以使用三元运算符作为替代if/else语句的速记表达式。
重构以后的代码如下:

System.out.println(count > 2 ? "Count is higher than 2" : "Count is lower or equal than 2");

虽然三值化是提高代码可读性的好方法,但它并不总是if/else的好替代品。

4.Switch结构

如果我们有多个条件需要判断,可以使用switch语句。
看一个简单的例子:

int count = 3;
switch (count) {
case 0:
System.out.println("Count is equal to 0");
break;
case 1:
System.out.println("Count is equal to 1");
break;
default:
System.out.println("Count is either negative, or higher than 1");
break;
}

三个或更多if/else语句可能很难阅读。为此,我们可以使用switch,如上所示。
注意,switch有作用域和输入限制,在使用它之前我们需要记住这些限制。

5.循环(Loops)

当我们需要连续多次重复执行相同的代码时使用循环。来看一个for和while循环类型的快速比较:

for (int i = 1; i <= 50; i++) {
methodToRepeat();
} int whileCounter = 1;
while (whileCounter <= 50) {
methodToRepeat();
whileCounter++;
}

上面的两个代码块都将调用methodToRepeat 50次。

6.结束循环(Break)

当需要退出循环时使用break关键字,此时循环体不再执行。
让我们看一个简单的例子:

List<String> names = getNameList();
String name = "John Doe";
int index = 0;
for ( ; index < names.length; index++) {
if (names[index].equals(name)) {
break;
}
}

在这里,在一个名字列表中寻找一个名字,一旦找到它,我们就要停止寻找。

7.直接执行下一循环(Continue)

简单的讲就是:结束当前循环,执行下一循环,不管当前循环下面有何代码都不再执行。

List<String> names = getNameList();
String name = "John Doe";
String list = "";
for (int i = 0; i < names.length; i++) {
// 找到同名的不会再加入到字符串中,继续判断下一个名字
if (names[i].equals(name)) {
continue;
}
list += names[i];
}

在这里,我们跳过在列表中添加重复的名称。正如我们在这里看到的,break和continue在迭代时非常方便,尽管它们通常可以用return语句或其他逻辑重写。

8.本文代码

完整程序代码:Java控制语句

Java控制语句的更多相关文章

  1. Java控制语句——if语句

    Java控制语句分为三大类:①顺序结构:②选择结构:③循环结构. 选择结构又分为:①单选择结构:②双选择结构:③多选择结构. 主要涉及: if_else , switch , while , brea ...

  2. Java开发知识之Java控制语句

    Java开发知识之Java控制语句 一丶复合语句 不管任何语言都有控制语句 if else if else whie do  while  for .... 首先讲解的是java的复合语句 1.什么是 ...

  3. Java 控制语句

    Java 控制语句

  4. Java 控制语句:循环、条件判断

    基础很重要,基础很重要,基础很重要.重要的事情说三遍,. 程序设计中的控制语句主要有三种:顺序.分支和循环.我们每天写的代码,除了业务相关,里面会包含大量的控制语句.但是控制语句的基本使用,是否有些坑 ...

  5. Java控制语句——分支、循环、跳转

    分支语句(if语句,switch语句): 循环语句(for,while,do...while); 跳转语句(break,continue,return): 分支语句(if语句,switch语句) if ...

  6. java 控制语句、数组、方法

    一.控制语句 1.if 语句 if语句是指如果满足某种条件,就进行某种处理. 流程图: 2. if…else语句 语法格式: if (判断条件){ 执行语句1 …… }else{ 执行语句2 …… } ...

  7. java控制语句 if-else while do-while for return break continue goto switch default

    if for //: object/ForEachFloat.java package object; import java.util.Random; public class ForEachFlo ...

  8. Java控制语句例题,for循环语句,if条件语句等,Scanner类与Random类,Math.max()方法

    例题:编写程序,生成5个1至10之间的随机整数,并打印结果到控制台 import java.util.Random;class demo09 { public static void main(Str ...

  9. Java控制语句——break和continue

    在任何循环语句的主体部分,均可用break控制循环的流程. break用于强行退出循环,不执行循环中剩余的语句.(break语句还可用于多支语句switch中) continue 语句用于循环语句体中 ...

  10. Java控制语句——for循环

    for循环语句是支持迭代的一种通用结构,是最有效.最灵活的循环结构. 语法形式: for(初始表达式 ; 布尔表达式 ; 步进){ 循环体 } for循环在执行条件测试后,先执行程序部分,再执行步进. ...

随机推荐

  1. Linux-文件压缩-tar-gzip

  2. [转帖]银河麒麟v10下载(服务器版 桌面版) - 2023-11-14更新

    银河麒麟v10下载(服务器版 桌面版) - 2023-11-14更新 如需转载请标明出处:[http://blog.csdn.net/itas109] 文章目录 银河麒麟v10下载(服务器版 桌面版) ...

  3. [转帖]一个Linux 内核 bug 导致的 TCP连接卡死

    https://plantegg.github.io/2022/10/10/Linux%20BUG%E5%86%85%E6%A0%B8%E5%AF%BC%E8%87%B4%E7%9A%84%20TCP ...

  4. [转帖]Linux磁盘I/O(二):使用vm.dirty_ratio和vm.dirty_background_ratio优化磁盘性能

    文件缓存是一项重要的性能改进,在大多数情况下,读缓存在绝大多数情况下是有益无害的(程序可以直接从RAM中读取数据).写缓存比较复杂,Linux内核将磁盘写入缓存,过段时间再异步将它们刷新到磁盘.这对加 ...

  5. Docker 运行 Redis Rabbitmq seata-server ftp 的简单办法

    公司里面用到了很多组件, 发现安装二进制太麻烦了, 所以想用Docker 进行安装. 这里面简单给总结一下就不在折腾了.. 1. redis docker run -d -p 6379:6379 -- ...

  6. Vue3中shallowReactive和shallowRef对数据进行非深度监听

    1.Vue3 中 ref 和 reactive 都是深度监听 默认情况下, 无论是通过 ref 还是 reactive 都是深度监听. 深度监听存在的问题: 如果数据量比较大,非常消耗性能. 有些时候 ...

  7. 【K哥爬虫普法】大数据风控第一案:从魔蝎科技案件判决,看爬虫技术刑事边界

    我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了"K哥爬虫普法"专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识, ...

  8. vim 从嫌弃到依赖(11)——标签页操作

    各位小伙伴们,你们好,我又更新了! 之前介绍了vim关于多窗口的操作,vim中多窗口是将多个窗口在一个屏幕中显示,这似乎与我们常见的ide有点不一样,一般的ide都是新开一个窗口之后在新的标签页中显示 ...

  9. 手撕Vuex-实现共享数据

    经过上一篇章介绍,完成了添加全局 $store,接下来就是实现共享数据的功能. 在 Vuex 中,共享数据是通过 state 来实现的,所以我们需要在 Nuex.js 文件中实现 state 的功能. ...

  10. 【四】超级快速pytorch安装,三步走,分分钟完成!

    相关文章: [一]tensorflow安装.常用python镜像源.tensorflow 深度学习强化学习教学 [二]tensorflow调试报错.tensorflow 深度学习强化学习教学 [三]t ...