我想问一下这两个C语言的流程图像图中这么画吗?
上面那个两个流程图哪个正确呢?,下面那个流程图正确吗?这两个语句有什么区别呢?谢谢!
C语言里的if和else后面实际上都只能跟一条语句,只不过C语言里还允许用大括号把很多条行语句复合起来,等效成一个。for循环之类的情况也类似。而有些语言里是用成对的关键词来起到这个作用的。所以关于流程图1、2,就像上面说的那样。 流程图3的话,由于if+else出现了三对,所以除非用大括号之类仔细地把语句区分开,否则编译器应该回报错。
也就是说每一对if+else应该都在更外一层if+else的if后的部分里。然后具体到内容,条件一最先被判断,所以在最外层;条件三最里层。单就这些条件被判断的先后关系来说,流程图2和3是一样的。 问题是流程图二和三这二个流程图里,“语句”部分可以是空语句,也就是说判断一个条件为真后,可以做些无关的事情,然后再去看更内一层条件的真假——这一点流程图三里有体现; 同时,一层的if+else判断完了一后,也可以去做些无关的事,然后结束这一层所在的if这一段程序——这一点好像流程图二和三都没有提到。
设想这样一个情况:在最内层if+else执行完毕以后要对变量a赋值。 显然,这一句是在中间一层的if+else的if部分里的,但同时又应该在最内层的if+else之外,那么这一句应该出现在流程图三的什么部分呢?既然流程图三里在两个条件判断图表之间流出了“语句”,那么在每一对if+else结束后,也应该紧跟着一部分“语句”。
希望没有误导。 另,既然三对if+else又嵌套的情况,那么画流程图的时候,不妨先画一个if+else对,然后再嵌套地把完全相同的if+else对插入到已经画出的if+else对中的if部分。相当于在判断条件为真时的“语句”中加入一个if+else对。
==== 关于大括号的问题。 反正用了大括号肯定不会错,而不用的话,一开始不熟悉的时候可能会以为连续的几句都是在条件为真/假时执行,但是实际上则只有紧跟着if或else的那句才执行。 流程图的话对错不好说,得根据题目/问题的内容来判断。
但是对于每一个if+else对,实际上在它执行前和执行完成后,都可以加入“语句”。
1是对的。不管前边的if语句结果如何,后边的if都要进行判断。所以他们三个的关系是平行的,互不影响,都要执行。 if的嵌套不一样,是根据外层的if条件来执行的。在这儿,如果最外层的条件为真,才执行里层的。相同,第二层和第三层的关系一样。
答:第二个图只是一个层次说明而已。不是流程图。关于流程图。 你是想问用什么工具画流程图?还是问什么是流程图? 工具的话,Word就可以。形状菜单中有全部流程图所需图...详情>>