爱问知识人 爱问教育 医院库

我想问一下这两个C语言的流程图像图中这么画吗?

首页

我想问一下这两个C语言的流程图像图中这么画吗?

上面那个两个流程图哪个正确呢?,下面那个流程图正确吗?这两个语句有什么区别呢?谢谢!

上面那个两个流程图哪……
提交回答

全部答案

    2013-04-03 12:45:36
  •   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对,实际上在它执行前和执行完成后,都可以加入“语句”。

    j***

    2013-04-03 12:45:36

  • 2013-04-02 13:05:25
  • 1是对的。不管前边的if语句结果如何,后边的if都要进行判断。所以他们三个的关系是平行的,互不影响,都要执行。
    if的嵌套不一样,是根据外层的if条件来执行的。在这儿,如果最外层的条件为真,才执行里层的。相同,第二层和第三层的关系一样。

    l***

    2013-04-02 13:05:25

类似问题

换一换
  • 软件 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):