《java编程思想》第四章 控制执行流程

PaddleOCR实战:从零开始训练自己的OCR模型(附完整代码与数据集处理技巧) 本文提供了一份详尽的PaddleOCR实战指南,手把手教你从零开始训练专属的OCR模型。内容涵盖高质量训练数据的准备与标注技巧、预训练模型的选型对比、关键参数调优策略,并附有完整的代码示例。通过遵循本文的步骤,开发者可以高效构建并优化贴合自身业务场景的高精度OCR模型,实现从数据到部署的全流程掌握。 阅读详情

java控制流程涉及的关键字:if-else、while、do-while、for、return、break、continue、switch等

4.1true和false

所有条件语句都利于条件表达式的真或假来决定执行路径。

4.2if-else

//: control/IfElse.java
import static net.mindview.util.Print.*;

public class IfElse {
  static int result = 0;
  static void test(int testval, int target) {
    if(testval > target)
      result = +1;
    else if(testval < target)
      result = -1;
    else
      result = 0; // Match
  }
  public static void main(String[] args) {
    test(10, 5);
    print(result);
    test(5, 10);
    print(result);
    test(5, 5);
    print(result);
  }
} /* Output:
1
-1
0
*///:~

else if是在else后面跟了一个if。

4.3迭代

while,do-while,for用来控制循环,语句会循环执行,直到起控制作用的布尔表达式得到“假”的结果位置。

while循环开始的时候会计算布尔值,在下一次开始前再计算一次:

//: control/WhileTest.java
// Demonstrates the while loop.

public class WhileTest {
  static boolean condition() {
    boolean result = Math.random() < 0.99;
    System.out.print(result + ", ");
    return result;
  }
  public static void main(String[] args) {
    while(condition())
      System.out.println("Inside 'while'");
    System.out.println("Exited 'while'");
  }
} /* (Execute to see output) *///:~

while和do-while唯一的区别就是do-while至少会执行一次,即使表达式第一次就被计算为false.

for在第一次循环之前需要初始化,然后进行条件测试,在每次循环结束时会进行“进步”。

//: control/ListCharacters.java
// Demonstrates "for" loop by listing
// all the lowercase ASCII letters.

public class ListCharacters {
  public static void main(String[] args) {
    for(char c = 0; c < 128; c++)
      if(Character.isLowerCase(c))
        System.out.println("value: " + (int)c +
          " character: " + c);
  }
} /* Output:
value: 97 character: a
value: 98 character: b
value: 99 character: c
value: 100 character: d
value: 101 character: e
value: 102 character: f
value: 103 character: g
value: 104 character: h
value: 105 character: i
value: 106 character: j
...
*///:~

在for初始化和进步处使用逗号分隔语句,这些语句可以独立执行,可以初始化多个参数。

//: control/CommaOperator.java

public class CommaOperator {
  public static void main(String[] args) {
    for(int i = 1, j = i + 10; i < 5; i++, j = i * 2) {
      System.out.println("i = " + i + " j = " + j);
    }
  }
} /* Output:
i = 1 j = 11
i = 2 j = 4
i = 3 j = 6
i = 4 j = 8
*///:~

4.4Foreach语法

//: control/ForEachFloat.java
import java.util.*;

public class ForEachFloat {
  public static void main(String[] args) {
    Random rand = new Random(47);
    float f[] = new float[10];
    for(int i = 0; i < 10; i++)
      f[i] = rand.nextFloat();
    for(float x : f)
      System.out.println(x);
  }
} /* Output:
0.72711575
0.39982635
0.5309454
0.0534122
0.16020656
0.57799757
0.18847865
0.4170137
0.51660204
0.73734957
*///:~

重载:表示相同的方法名可以具有不同的参数列表。

4.5return

return,break,Continue都是可以表示无条件分支(无需任何测试即可发生)。

如果一个方法声明的不是void那个每个路径都得有返回值:

//: control/IfElse2.java
import static net.mindview.util.Print.*;

public class IfElse2 {
  static int test(int testval, int target) {
    if(testval > target)
      return +1;
    else if(testval < target)
      return -1;
    else
      return 0; // Match
  }
  public static void main(String[] args) {
    print(test(10, 5));
    print(test(5, 10));
    print(test(5, 5));
  }
} /* Output:
1
-1
0
*///:~

4.6break和continue

break强行退出循环,不执行循环剩余语句。

continue停止执行当前循环,退回循环起始处,开始下一次迭代(循环)。

//: control/BreakAndContinue.java
// Demonstrates break and continue keywords.
import static net.mindview.util.Range.*;

public class BreakAndContinue {
  public static void main(String[] args) {
    for(int i = 0; i < 100; i++) {
      if(i == 74) break; // Out of for loop
      if(i % 9 != 0) continue; // Next iteration
      System.out.print(i + " ");
    }
    System.out.println();
    // Using foreach:
    for(int i : range(100)) {
      if(i == 74) break; // Out of for loop
      if(i % 9 != 0) continue; // Next iteration
      System.out.print(i + " ");
    }
    System.out.println();
    int i = 0;
    // An "infinite loop":
    while(true) {
      i++;
      int j = i * 27;
      if(j == 1269) break; // Out of loop
      if(i % 10 != 0) continue; // Top of loop
      System.out.print(i + " ");
    }
  }
} /* Output:
0 9 18 27 36 45 54 63 72
0 9 18 27 36 45 54 63 72
10 20 30 40
*///:~

无穷循环的两种形式:

for(;;);

while(true);

4.7臭名昭著的goto

在java中标签唯一起作用的地方就是在迭代语句之前。

//: control/LabeledFor.java
// For loops with "labeled break" and "labeled continue."
import static net.mindview.util.Print.*;

public class LabeledFor {
  public static void main(String[] args) {
    int i = 0;
    outer: // Can't have statements here
    for(; true ;) { // infinite loop
      inner: // Can't have statements here
      for(; i < 10; i++) {
        print("i = " + i);
        if(i == 2) {
          print("continue");
          continue;
        }
        if(i == 3) {
          print("break");
          i++; // Otherwise i never
               // gets incremented.
          break;
        }
        if(i == 7) {
          print("continue outer");
          i++; // Otherwise i never
               // gets incremented.
          continue outer;
        }
        if(i == 8) {
          print("break outer");
          break outer;
        }
        for(int k = 0; k < 5; k++) {
          if(k == 3) {
            print("continue inner");
            continue inner;
          }
        }
      }
    }
    // Can't break or continue to labels here
  }
} /* Output:
i = 0
continue inner
i = 1
continue inner
i = 2
continue
i = 3
break
i = 4
continue inner
i = 5
continue inner
i = 6
continue inner
i = 7
continue outer
i = 8
break outer
*///:~
//: control/LabeledWhile.java
// While loops with "labeled break" and "labeled continue."
import static net.mindview.util.Print.*;

public class LabeledWhile {
  public static void main(String[] args) {
    int i = 0;
    outer:
    while(true) {
      print("Outer while loop");
      while(true) {
        i++;
        print("i = " + i);
        if(i == 1) {
          print("continue");
          continue;
        }
        if(i == 3) {
          print("continue outer");
          continue outer;
        }
        if(i == 5) {
          print("break");
          break;
        }
        if(i == 7) {
          print("break outer");
          break outer;
        }
      }
    }
  }
} /* Output:
Outer while loop
i = 1
continue
i = 2
i = 3
continue outer
Outer while loop
i = 4
i = 5
break
Outer while loop
i = 6
i = 7
break outer
*///:~

4.8switch

switch是选择语句,会从一系列代码中选出一段去执行。

switch的选择因子必须是int或者char这样的整数。不过可以和枚举(enum)一起用。

//: control/VowelsAndConsonants.java
// Demonstrates the switch statement.
import java.util.*;
import static net.mindview.util.Print.*;

public class VowelsAndConsonants {
  public static void main(String[] args) {
    Random rand = new Random(47);
    for(int i = 0; i < 100; i++) {
      int c = rand.nextInt(26) + 'a';
      printnb((char)c + ", " + c + ": ");
      switch(c) {
        case 'a':
        case 'e':
        case 'i':
        case 'o':
        case 'u': print("vowel");
                  break;
        case 'y':
        case 'w': print("Sometimes a vowel");
                  break;
        default:  print("consonant");
      }
    }
  }
} /* Output:
y, 121: Sometimes a vowel
n, 110: consonant
z, 122: consonant
b, 98: consonant
r, 114: consonant
n, 110: consonant
y, 121: Sometimes a vowel
g, 103: consonant
c, 99: consonant
f, 102: consonant
o, 111: vowel
w, 119: Sometimes a vowel
z, 122: consonant
...
*///:~

case语句能够堆叠在一起使用,为一段代码形成多重匹配,只要符合多重匹配中的一个就执行代码。

4.9总结

这一章介绍了Java中的控制流程,比较简单,和C语言或者其他语言大同小异。困难的是需要在工作中灵活应用,许许多多的算法,思想可能就是几个简单的for循环实现的。

智算中心建设全流程指南:从规划到落地 智算中心的建设是一个复杂而系统的过程,涉及选址、立项、办理相关手续、设计、土建、机电安装、调试、验收等多个环节。每个环节都需要充分考虑各种因素,并注意相关的事项,以确保智算中心的顺利建设和高效运行 阅读详情

相关推荐

Excel-MCP实战指南:零代码实现大模型与Excel的智能交互

本文详细介绍了Excel-MCP工具如何实现大模型与Excel的无缝交互,无需编写代码即可完成数据读写、图表生成等复杂操作。通过实战案例展示了Excel-MCP在销售报表自动化、财务对账等企业级场景中的应用,大幅提升工作效率。文章还提供了安装指南、核心功能解析和常见问题解决方案。

weixin_29212429的博客 433

控制执行流程之break和continue

1.在任何迭代语句的主体部分,都可以用break和continue来控制程序执行流程。2.注意: break:用于强行退出循环, 不执行循环中剩余的语句;continue:停止当前的循环,执行下一次循环。3. 补充:无穷循环:for(;;){} 和while(true){}表达一个意思,编译器会将两者看做一样的。4.案例:package com.sico.javafun01;public clas...

weixin_30746117的博客 216

ADS新手必看:用Filter DesignGuide快速搞定一个4GHz LC低通滤波器(附保姆级避坑指南)

本文为ADS新手提供了4GHz LC低通滤波器的完整设计流程,重点介绍了如何使用Filter DesignGuide避免参数设置陷阱、正确解读仿真结果以及解决实际电路与理论值的偏差问题。通过真实工程案例,详细讲解了工程创建、Filter DesignGuide配置、电路优化、仿真设置及实际工程中的进阶技巧,帮助工程师快速掌握LC滤波器设计。

weixin_30878501的博客 300

Java笔记——流程控制LOOP循环

LOOP循环第一篇

u013430418的博客 1321

在 Linux/Debian/Ubuntu 上使用 Brasero 刻录光盘

在 Ubuntu 系统中,Brasero 是一个非常方便的光盘刻录工具。无论是创建数据光盘、音频光盘还是刻录光盘镜像文件,Brasero 都能轻松胜任。本文将介绍如何在 Ubuntu 上安装和使用 Brasero 进行光盘刻录。

I AM COMING BACK... 3543

西门子机床数据采集实战:从828D到840DSL的CNC设备联网与实时监控

本文深入探讨了西门子机床数据采集的实战方案,重点解析了从828D到840DSL等CNC设备如何实现免授权、低成本联网与实时监控。文章通过对比不同型号系统的数据接口差异,提供了详细的配置步骤、核心数据点清单以及避坑指南,旨在帮助工厂技术人员经济高效地挖掘机床数据价值,提升生产管理效率。

weixin_29181861的博客 1327

day3 java-程序流程控制、Random类

程序流程控制课程介绍 1.分支结构 package com.itheima.branch; /** 目标:学会使用if分支结构解决问题,理解其流程。 */ public class IfDemo1 { public static void main(String[] args) { // 需求:心跳(60 - 100)之间是正常的,否则系统提示进一步检查 // 格式1: if(条件表达式){ 代码... } int hea

wjl200212的博客 677

AI 赋能 DBA:如何用 DeepSeek 等大模型简化数据库管理工作

数据库管理员(DBA)的工作涉及 SQL 优化、故障排查、性能监控等复杂任务。而 DeepSeek、ChatGPT 等大模型可以大幅减少重复劳动,提高 DBA 的工作效率。:某电商平台的订单查询 SQL 执行缓慢(平均 5s),DBA 需要优化。:DBA 需要监控 MySQL 的慢查询,但不想手动写脚本。:某金融系统频繁出现数据库死锁,DBA 需要快速定位原因。:大模型可分析 SQL 执行计划,推荐索引优化方案。:用日常语言查询数据库,无需写复杂 SQL。:一键生成监控、备份、数据迁移脚本。

专注于编程、AI、人工智能等多个领域内容研究和分析 564

Java基础学习笔记三 Java基础语法

Scanner类 Scanner类属于引用数据类型,先了解下引用数据类型。 引用数据类型的使用 与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格式。 数据类型 变量名 = new 数据类型(); 每种引用数据类型都有其功能,我们可以调用该类型实例使用其功能。 变量名.方法名(); Scanner类 Scanner类可以完成用户键...

weixin_30432579的博客 222

基于STM32、HAL库的WF282A气压传感器 驱动程序设计

测量范围:0-2.5MPa(可根据需求选择其他量程)输出方式:I2C或SPI数字接口。温度补偿范围:-20℃~85℃。低功耗设计,适合电池供电应用。工作电压:3.3V/5V。精度:±0.1%FS。

corlin6688的博客 394

MCU-内部flash模拟成EepRom(重新梳理)

通过fee写数据Data的过程中,数据会mapping一个虚拟地址,这个虚拟地址就是你的身份,在向flash写数据的过程中会写入很多相同虚拟地址的不同数据,在读取或切页的过程中,遍历数据只会认为最下面第一个的虚拟地址所持有的数据是有效数据,其他的都是老数据,可以丢弃。模拟成eeprom的两个eep_page写数据逻辑就是,先在eep_page0写数据,eep_page0写满后,将eep_page0的有效数据copy到eep_page1,之后擦eep_page0;

xiandang8023的博客 711

public static void main(String[] args){}函数诠释

主函数的一般写法如下:  public static void main(String[] args){…}  下面分别解释这些关键字的作用:  (1)public关键字,这个好理解,声明主函数为public就是告诉其他的类可以访问这个函数。  (2)static关键字,告知编译

Chen 1万+

SAP-ABAP:SAP数据库视图(Database View)详解-创建

数据库视图是SAP中实现多表关联查询的基础工具,适合简单的跨表查询和权限控制场景。但其功能有限,对于复杂逻辑或高性能需求,建议结合CDS视图或ABAP程序开发。通过合理设计,数据库视图可显著提升开发效率和系统可维护性。它存储在数据库中,但本身不存储数据,仅通过查询动态生成结果。是一种基于物理数据库表的虚拟表,通过关联多个表(使用。

baidu_35680696的博客 1369

《Java编程思想》读书笔记:第四章 控制执行流程

在一个控制表达式中,定义多个变量的这种能力只限于for循环适用,在其他任何选择或迭代语句中都不能使用这种方式。可以看到,无论在初始化还是在步进部分,语句都是顺序执行的。此外,

Mr_Kian的博客 649

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java 编程思想—— 第四章 控制执行流程

就像有知觉的生物一样,程序必须在执行过程中控制他的世界,并做出选择。在Java中你要使用执行控制语句来做出选择。          1. true和false                Java不允许将一个数字当做布尔值用。如果想在一个测试中使用布尔值,就必须向将其通 过条件表达式转换为布尔值。          2 .if-else          3 .迭代

在路上 1036

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Java编程思想 第四章 控制执行流程

文章目录

name_sakura的博客 247

《Java编程思想》:第四章 控制执行流程

第四章 控制执行流程 true和false ​ 所有条件语句都利用条件表达式的真或假来决定执行路径。但是注意Java不允许将一个数字作为布尔值使用。 if-else ​ if-else语句是控制程序流程的最基本形式。作为if-else的一个例子,下面这个test()方法可以告诉您,您猜的数是大于、小于还是等于目标数: import static net.mindview.util.Print.print; /** * @author Tangwenbo * @version JDK 1.8 * @d

pickLing_的博客 325

Java编程思想笔记4——第四章:控制执行流程

4、控制执行流程 Java使用了C的所有流程控制语句。 Java涉及的关键字包括if-else、while、do-while、for、return、break、switch Java并不支持goto。 有一种类似goto的跳转,然后有了很多的限制。 4.1 true和false 通过 == ,然后相等返回true,如果不相等返回false 4.2 if-else if (表达式1){ //语句 }else{ //语句 } if (表达式1){ //语句 }else if{

qq_35556504的博客 165

Java编程思想第四版读书笔记——第四章 控制执行流程

Java编程思想第四版第四章读书笔记——控制执行流程

severusyue的博客 652

Java编程思想阅读笔记(第四章)控制执行流程

1)Java使用了C的所有控制流程语句,在Java中涉及的关键字包括 if-else、 while、 do-while、 for、 return、 break以及选择语句switch,Java不支持goto语句。 4.1true和false 1)所有条件语句都利用条件表达式的真或假来决定执行的路径。 2)Java不允许将一个数字作为布尔值使用,虽然这在C或C++中...

key_artist的博客 280

Java编程思想笔记——第四章 控制执行流程

Java编程思想笔记——第四章 控制执行流程

2的32次方 423

Java编程思想简要笔记——第四章 控制执行流程

这一章都是基本的if-else, while, switch-case 操作,新东西好像就是标签机制了。有个可能需要记住的陈述句唯一一个用到逗号操作符的地方是for的控制表达式。有个作业题“吸血鬼数字”可以来练练手。 标签机制 goto因为会把代码带到某些不期望的地方,所以被广大编程专家们诟病,Java也只是预留了这个保留字,但是没有提供这个功能。标签机制是Java语言的一种类似goto的机制,但...

kiba_zwei的博客 203

Java编程思想课后练习题——第四章 控制执行流程

本文主要依据《Java编程思想》的示例及课后练习,通过个人编写,同时参考答案的代码写法。主要目的是用于自己熟悉编码风格,同时可以给更多人提供参考。(只完成了部分练习)

小歪歪的博客 332

Java编程思想-第四章 控制执行流程

第四章 控制执行流程关键词 关键词 if-else、迭代、foreach、break和continue、switch

Mumu2609的博客 223

Java编程思想(第四章 控制执行流程)

Java中“goto”的使用 goto语句作为源码级上的跳转模糊了程序的流程控制。在Java中想要使用类似的机制需要使用continue和label //文件名:temp public class temp { public static void main(String[]args) { int i=0; outer: //设置标签outer,冒号后不能放置其他语句 for(;true;) { inne

mine 173

《java编程思想——第四章(控制执行流程)》

控制执行流程 在Java中,你要使用执行控制语句来做出选择。 4.1 true和false 所有条件语句都利用条件表达式的真假来决定执行路径。 4.2 if-else if(boolean-exp) { //dosomething }else{ //dosomething } 布尔表达式必须产生布尔结果。 4.3 迭代 while ,do-while...

ByteX的博客 353

Java编程思想读书笔记——第四章:控制执行流程

第四章 控制执行流程 关键字包括if-else、while、do-while、for、return、break、switch,不支持goto 4.1 true和false ==或者是!=,这个没啥可说的 4.2 if-else if-else是可选的,意思就是我们可以只有if,也可以if-else都有 这在编程中是很常见的,注意if和if-else的执行区别,if执行完继续向...

pengbo6665631的博客 306
上一篇: LeetCode-620. 有趣的电影( 620. Not Boring Movies)。
下一篇: LeetCode-626. 换座位( 626. Exchange Seats)。知识点:case when then else end
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值