热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java中的控制流与作用域

本文详细介绍了Java中的控制流语句,包括块作用域、if语句、for循环、while循环、do-while循环、switch语句以及break和continue语句的使用方法。通过具体的代码示例,帮助读者更好地理解和应用这些控制流结构。

1. 块作用域

块(即复合语句)是指由一对花括号括起来的多条 Java 语句。块决定了变量的作用域,一个块可以嵌套在另一个块中。例如:

```java public class PrintIn { public static void main(String[] args) { int a = 2; { int a = 3; int b = 3; } } } ``` 需要注意,在一个块中定义的变量不能在嵌套的块中重新定义相同的变量,否则会编译出错。

2. if 语句

if 语句的语法形式与 Javascript 类似:`if () {} else if () {} ... else {}`。Java 中的 if 语句与 Python 不同,Python 可以直接用数组、字符串、字典等作为条件,但在 Java 中只能使用布尔表达式。例如:

```java public class PrintIn { public static void main(String[] args) { int a = 2; int v = 4; if (a <4) { System.out.println("OK"); } else { System.out.println("bad"); } } } ``` 错误的写法: ```java public class PrintIn { public static void main(String[] args) { int a = 2; int v = 4; if (a) { System.out.println("OK"); } else { System.out.println("bad"); } } } ``` 3. for 循环

for 循环的语法形式为 `for (初始化; 条件; 更新) {}`。通过计数器或变量的值修改来结束循环。变量的作用域仅限于循环体内部。例如:

```java public class PrintIn { public static void main(String[] args) { int i; for (i = 2; i <4; i++) { System.out.println(i); } System.out.printf("i value is %d", i); } } ``` 如果需要在 for 循环外部使用变量,需要在循环外部定义该变量。

4. while 语句

while 语句的形式为 `while (条件) { 语句 }`。当条件成立时,执行块中的代码;否则,不执行。例如:

```java public class PrintIn { public static void main(String[] args) { int i = 3; while (i <6) { System.out.println(i); i += 1; } } } ``` do-while 语句的形式为 `do { 语句 } while (条件)`。无论条件是否成立,都会先执行一次块中的代码,然后再进行判断。例如:

```java public class PrintIn { public static void main(String[] args) { int i = 3; do { System.out.println(i); } while (i <3); } } ``` 5. switch 语句

switch 语句用于多个条件判断,避免 if-else 语句过于臃肿。其结构为 `switch (变量) { case 值: 语句 break; ... }`。需要注意的是,每个 case 后面需要加 break 以避免执行多个 case 分支。例如:

```java import java.util.Scanner; public class PrintIn { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Please enter your choice?"); int choice = scan.nextInt(); switch (choice) { case 1: System.out.printf("You entered %d", choice); break; case 2: System.out.printf("You entered %d", choice); break; case 3: System.out.printf("You entered %d", choice); break; default: System.out.println("Bad input"); break; } } } ``` 6. 中断流程

Java 中的 break 和 continue 语句用于中断或继续循环。break 语句可以带标签跳出多层循环,而 continue 语句则用于跳过当前循环的剩余部分,继续下一次循环。例如:

```java public class Loop { public static void main(String[] args) { int i = 2; while (i <5) { System.out.printf("i is %d\n", i); if (i == 4) break; i++; } } } ``` 带标签的 break 语句示例:

```java public class Loop { public static void main(String[] args) { int i = 3; break_tag: while (i <6) { System.out.printf("i is %d\n", i); for (int a = 2; a <6; a++) { if (a == 4) { break break_tag; } System.out.printf("a is %d\n", a); } i++; } System.out.println("OK"); } } ``` 标签的位置决定了跳出的具体层次,标签必须用冒号声明,并紧跟在循环体之前。例如:

```java public class Loop { public static void main(String[] args) { int i = 3; for (int a = 2; a <6; a++) { break_tag: if (i > 0) { if (a == 4) { break break_tag; } System.out.printf("a is %d\n", a); } i++; } } } ``` 输出结果为: ``` a is 2 a is 3 a is 5 ``` 总结:本文通过详细的代码示例,介绍了 Java 中的控制流语句及其使用方法,帮助读者更好地理解和应用这些控制结构。


推荐阅读
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Java 类成员初始化顺序与数组创建
    本文探讨了Java中类成员的初始化顺序、静态引入、可变参数以及finalize方法的应用。通过具体的代码示例,详细解释了这些概念及其在实际编程中的使用。 ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文介绍如何使用Objective-C结合dispatch库进行并发编程,以提高素数计数任务的效率。通过对比纯C代码与引入并发机制后的代码,展示dispatch库的强大功能。 ... [详细]
  • Java 中 Writer flush()方法,示例 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
author-avatar
ChrisBao
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有