画出下列伪代码程序的流程图,计算它的环形复杂度。这个程序的逻辑有什么问题吗?

C	EXAMPLE
LOOP:DO WHILE Z>0
	A=B+1
	IF A>10
		THEN X=A
		ELSE Y=Z
	END IF
	IF Y<5
		THEN PRINT X,Y
		ELSE IF Y=2
			THEN GOTO LOOP
			ELSE C=3
			END IF
	END IF
	G=H+R
	END DO
	IF F>0
		THEN PRINT G
		ELSE PRINT K
	END IF
	STOP

程序流程图

在这里插入图片描述

流图

在这里插入图片描述

环形复杂度

V(G)=判断结点+1=6+1=7
其中判断结点为 1 , 3 , 6,8, 10, 11

逻辑问题

有问题:当Z>0时,容易形成死循环,条件Y<5中包含条件Y=2

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐