热门标签 | 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 中的控制流语句及其使用方法,帮助读者更好地理解和应用这些控制结构。


推荐阅读
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • JSOI2010 蔬菜庆典:树结构中的无限大权值问题
    本文探讨了 JSOI2010 的蔬菜庆典问题,主要关注如何处理非根非叶子节点的无限大权值情况。通过分析根节点及其子树的特性,提出了有效的解决方案,并详细解释了算法的实现过程。 ... [详细]
  • 深入理解Vue.js:从入门到精通
    本文详细介绍了Vue.js的基础知识、安装方法、核心概念及实战案例,帮助开发者全面掌握这一流行的前端框架。 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 丽江客栈选择问题
    本文介绍了一道经典的算法题,题目涉及在丽江河边的n家特色客栈中选择住宿方案。两位游客希望住在色调相同的两家客栈,并在晚上选择一家最低消费不超过p元的咖啡店小聚。我们将详细探讨如何计算满足条件的住宿方案总数。 ... [详细]
  • 2018-2019学年第六周《Java数据结构与算法》学习总结
    本文总结了2018-2019学年第六周在《Java数据结构与算法》课程中的学习内容,重点介绍了非线性数据结构——树的相关知识及其应用。 ... [详细]
  • 本题来自WC2014,题目编号为BZOJ3435、洛谷P3920和UOJ55。该问题描述了一棵不断生长的带权树及其节点上小精灵之间的友谊关系,要求实时计算每次新增节点后树上所有可能的朋友对数。 ... [详细]
  • 本文详细介绍了如何使用 PHP 接收并处理微信支付的回调结果,确保支付通知能够被正确接收和响应。 ... [详细]
  • 本文介绍如何使用MFC和ADO技术调用SQL Server中的存储过程,以查询指定小区在特定时间段内的通话统计数据。通过用户界面选择小区ID、开始时间和结束时间,系统将计算并展示小时级的通话量、拥塞率及半速率通话比例。 ... [详细]
  • 本文详细介绍了如何在PHP中删除数组中的指定元素、第一个元素和最后一个元素,并提供了具体的代码示例和相关函数的使用说明。 ... [详细]
  • PHP 实现多级树形结构:构建无限层级分类系统
    在众多管理系统中,如菜单、分类和部门等模块,通常需要处理层级结构。为了高效管理和展示这些层级数据,本文将介绍如何使用 PHP 实现多级树形结构,并提供代码示例以帮助开发者轻松实现无限分级。 ... [详细]
  • 本文探讨了在Java中如何正确地将多个不同的数组插入到ArrayList中,避免所有数组在插入后变得相同的问题。我们将分析代码中的问题,并提供解决方案。 ... [详细]
  • Redux入门指南
    本文介绍Redux的基本概念和工作原理,帮助初学者理解如何使用Redux管理应用程序的状态。Redux是一个用于JavaScript应用的状态管理库,特别适用于React项目。 ... [详细]
  • 本文介绍如何从字符串中移除大写、小写、特殊、数字和非数字字符,并提供了多种编程语言的实现示例。 ... [详细]
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社区 版权所有