Java 中的环形复杂度10 Sept 2024 | 5 分钟阅读 Java 中的代码管理是一个你可能熟悉的 có học thuật. 它涉及如何组织源代码,以便在维护过程中能够更轻松地处理。除了其他时间复杂度外,这种圈复杂度是根据程序的控制流计算的。 文件名: CyclomaticComplexity.java 输出 Inside the main method. 分析: 该程序只有一个打印语句,没有控制语句或决策语句,因此该程序的圈复杂度为 1。 计算圈复杂度的公式通常,计算圈复杂度的公式如下: 因此,根据上述公式,我们也可以找到上面编写的程序的圈复杂度。上面编写的程序中的决策点总数为零。请注意,打印语句不是决策语句。因此,根据公式 示例让我们看一些例子并计算其圈复杂度。 示例 - 1 文件名: CyclomaticComplexity1.java 输出 Inside the foo method. 分析: 该程序有一个决策点,即 if 条件,因此应用圈复杂度公式,我们得到 圈复杂度 = 1 + 1 = 2。2 表示有两种控制流。一种通过 if 语句体,另一种通过 else 块。 示例 - 2 文件名: CyclomaticComplexity2.java 输出 Inside the first if-condition. Inside the foo method. 分析: 在上面的情况下,决策点的数量是 3。因此,根据公式,我们得到圈复杂度如下: 圈复杂度 = 3 + 1 = 4。4 表示有四种控制流。第一个通过第一个 if 语句体,然后是第二个 if 语句体。第二个流通过第一个 if 语句体,然后是 else 块。第三个流通过第二个 if 语句体,第四个流通过 else 块。 示例 - 3 文件名: CyclomaticComplexity3.java 输出 Inside the first if-condition. Inside the foo method. 分析: 在上面的情况下,圈复杂度可以计算为决策点总数加上逻辑运算符总数再加上 1。只有一个决策点,因为只有一个 if 条件。此外,还有三个逻辑运算符,两个 || 和一个 &&。因此,圈复杂度可以计算为: 圈复杂度 = 1 + 3 + 1 = 5,这意味着有五种控制流。一种是当 n.equals(n1) 为真时,if 条件体执行。第二种是当 n.equals(n1) 为假,n.equals(n2) 为真时,if 条件体执行。第三种是当 n.equals(n1) 为假,n.equals(n2) 也为假时,逻辑 && 运算结果为真,if 条件体执行。第四种是当 n.equals(n1) 为假,n.equals(n2) 也为假时,&& 运算符的第一个操作数为假,if 条件体不执行。第五种是当 n.equals(n1) 为假,n.equals(n2) 也为假时,&& 运算符的第一个操作数为真,但第二个操作数为假,if 条件体不执行。 各种决策点有各种决策点会使圈复杂度增加 1。
开发人员或程序员应以能够降低圈复杂度的方式编写代码。 降低圈复杂度的好处以下是降低圈复杂度的一些好处。
计算圈复杂度的工具以下是计算圈复杂度的工具。
在代码的构建生命周期中,可以集成这些工具。 圈复杂度的优缺点在本教程中,我们将讨论圈复杂度的优缺点。让我们先从优点开始。 优点
缺点
圈复杂度的用法以下是圈复杂度的用法。
下一主题Java 中已弃用的含义 |
在面向对象编程领域,单一职责原则(SRP)是一个基本概念,它在创建干净、可维护和可扩展的代码方面起着至关重要的作用。SRP 是 SOLID 原则之一,SOLID 原则是一套旨在改进软件设计和架构的设计原则……
阅读 6 分钟
在本节中,我们将讨论什么是梅森数,并创建 Java 程序来检查给定数字是否是梅森数。梅森数程序经常出现在 Java 编码面试和学术界。梅森数 在数学中,梅森数是...
阅读 3 分钟
在面向对象编程中,数组是一种以线性方式存储同构数据的结构。数组的大小是固定的,即一旦声明,数组的大小就不能修改。换句话说,数组存储相同类型的数据(int、float、string,...
阅读 8 分钟
铁路站问题是编码轮面试中通常会问到的最重要的一个问题,用于测试候选人的逻辑能力和问题解决能力。铁路站问题 在此问题中,提供了火车的到达和离开时间……
5 分钟阅读
? Java,这个广阔的印度尼西亚岛屿以其丰富的文化遗产而闻名,历史上一直是多元社区和民族群体的熔炉。在这些群体中,Kalangs 占有重要地位。Kalangs 是一个独特的民族和文化社区,曾在 Java 繁荣发展,...
阅读 3 分钟
一维 (1D) 数组是一种线性数据结构,它将相同数据类型的元素存储在连续的内存位置中。基本术语 数组元素:数组的项称为其元素,它们存储在数组中,并且可以通过...随机访问。
7 分钟阅读
在本节中,我们将学习 Java 中的 Morris 遍历前序遍历。在 Morris 遍历中,我们无需递归或堆栈即可完成树的遍历。Morris 遍历基于线索化二叉树。Morris 遍历前序算法 下面是...
阅读 4 分钟
要在 Java 中将输出打印到控制台,请使用 System.out.println() 函数。然而,在某些情况下,出于日志记录或审计目的,您可能希望将此输出重定向到文件。可以使用 PrintStream 类来实现此目的。在本节中,我们将...
阅读 3 分钟
借助 Java 编程语言的 switch case 语句,程序员可以轻松构建复杂的决策逻辑。在本节中,我们将探讨 switch case 语句的语法,讨论它们为何优于 if-else 语句,并提供一些使用示例。语法 switch 的基本语法...
阅读 6 分钟
?将日期从 Java 应用程序添加到 MySQL 数据库是处理与日期相关数据时的一项常见要求。在本文中,我们将指导您完成使用 Java 在 MySQL 中添加日期的过程。我们将涵盖必要的步骤,包括建立...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India