程序流程图中带有箭头的线段表示的是?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序流程图中带有箭头的线段表示的是?相关的知识,希望对你有一定的参考价值。

程序流程图中带有箭头的线段表示的是控制流。

程序流程图是人们对解决问题的方法、思路或算法的一种图形方式的描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容;流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流;带箭头的线段在程序流程图中表示控制流。

扩展资料:

程序流程图注意事项:

1、一幅完整的流程图,必须包含唯一个“开始”与唯一个“结束。

2、流程箭头不允许回调,所有执行不得回退前一步骤。如果有需要,可以在添加适当判断,然后重新调用某一步骤。

3、对于棱型判断框,必须包括两个或两个以上的条件走向注释(条件写在箭头线上),以及对应的执行结果。

4、流程图可以很长,也可以有多个异常处理,但整体必须是从上而下的、清晰的。混乱的流程图源自于混乱的逻辑思考过程。我们鼓励在适当的时候重绘,以避免起稿时的错误。

5、流程图是“长廊”,不是“万平米仓储超市”。过程精确优于造型美观、出入便捷。

6、对于游戏设计师,因为我们在思考功能时可能会同时思考用户与界面的交互,有必要时,可以(而且是应该)分开绘制(整体的)功能设计流程图和子功能(按键)执行流程图。

参考技术A

    带有箭头的线段表示的是控制流,是程序进行的方向,表示从一个处理到下一个处理;

    程序流程图中带箭头的线段表示控制流;

    数据流程图中带箭头的线段表示数据流,容易弄混

    程序流程图是程序分析中最基本、最重要的分析技术,它是进行流程程序分析过程中最基本的工具。流程程序图运用工序图示符号对生产现场的整个制造程序做详细的记录,以便对零部件、产品在整个制造程序中的操作、搬运、检验、储存、等待作详细的研究与分析,特别是用于分析其搬运距离和等待、储存等“隐藏成本”的浪费。

参考技术B #计算机二级MSoffice的高级应用#
在程序流程图中用标有名字的箭头表示控制流;
在数据流程图中,用标有名字的箭头表示数据流。
希望对读者您有帮助,谢谢
参考技术C 程序流程图中带有箭头的线段表示的是控制流。
在程序流程图中,构成程序流程图的最基本图符及含义:方框表示一个加工步骤;菱形表示一个逻辑条件;箭头表示控制流。
参考技术D 程序流程图中带有箭头的线段表示的是控制流

setState Dart/Flutter 中带有花括号的胖箭头符号

【中文标题】setState Dart/Flutter 中带有花括号的胖箭头符号【英文标题】:Fat Arrow notation with curly braces in setState Dart/Flutter 【发布时间】:2019-08-16 11:06:30 【问题描述】:

我对 Dart/Flutter 非常陌生,我对 => 表示法感到困惑。文档说 => 表示法用作返回单个表达式的简写。

bool isNoble(int atomicNumber) => _nobleGases[atomicNumber] != null;

当我尝试在颤振应用程序中设置状态时,我的疑问就出现了。

RaisedButton(
  onPressed: () => 
    setState(() 
      print('hello');
      _products.add('More stuff');
    )
  ,
  child: Text('Add Product'),
),

现在,当我用 => 表示法更改 setState 方法时

RaisedButton(
  onPressed: () => 
    setState(() => 
      print('hello'),
      _products.add('More stuff'),
    )
  ,
  child: Text('Add Product'),
),

上述两种方法都有效,即它们按预期设置状态。我所要做的就是在使用粗箭头符号时将分号更改为逗号。

这背后的逻辑是什么?粗箭头符号如何与包含多个表达式的花括号一起使用。

编辑

正如 Hemanth Raj 所说,=> 返回一个集合,包含 => 符号的代码段可以编写如下。

RaisedButton(
  onPressed: () => 
    setState(() 
     return 
       print('hello'),
       _products.add('More stuff'),
     ;
    )
  ,
  child: Text('Add Product'),
),

返回的set 包含打印函数和_products.add 如何实际更新状态。它不应该抛出某种错误吗,因为通常 setState 是由诸如_products.add('More stuff'); 之类的表达式完成的。

【问题讨论】:

Dart lambda/shortland function confusion的可能重复 这不是重复的,这是一个非常有趣的问题@MazinIbrahim。这是Dart 2.2 中引入的定义Set 的新方法的结果。 【参考方案1】:

这是我很想回答的有趣问题之一。

正如官方文档所说的here,是的,=> 用作 return ... 的简写语法,这意味着=> 将只返回右侧产生的任何内容。

同样来自Dart 2.2 及以上,Set 可以定义为用逗号分隔的值括在 中,如文档here 中所述。

因此,您正在使用的语法,即 与用逗号分隔的语句,它被 => 函数视为 Set。每个元素都是一个函数调用,() => f(a) , f(b), g(a), 将返回一个 Set,其中包含每个函数调用返回的元素。

此示例可能会帮助您了解幕后发生的事情:

dynamic reflect(dynamic a)
  return a;


void main()   
    Function shortHand = () => reflect(1),reflect('a'),reflect(),reflect([]),; // this function when called will return a Set<dynamic>
    print(shortHand().runtimeType); // will print `_LinkedHashSet<dynamic>`

所以语法

() =&gt; '...' 返回一个String

() =&gt; [ ... , ..., ...] 返回一个List

同样() =&gt; ... , ... , ... 实际上返回一个Set

注意:不建议使用这种以逗号分隔的函数调用返回集合的方法,除非您希望将 Set 作为结果返回,否则请不要使用它


回复编辑:

让我为您分解函数调用和结果。所以你的代码是这样的,

() => 
    setState(() 
     return 
       print('hello'),
       _products.add('More stuff'),
     ;
    )
  

这里=&gt; 返回一个Set,结果为setState,即它会返回 (result of setState call) ,它可能是 null

当您调用setState 时,下面的代码将被执行,它再次返回带有 (result of print), (result of _product.add), Set

() 
      return 
        print('hello'),
        _products.add('More stuff'),
      ;
    

当您执行_products.add('More stuff') 时,状态将更新,其中'More stuff' 将被添加到_products,无论您在哪里调用它。当 setState 被调用时,小部件将使用 _products 重新构建并添加新数据。

希望这有帮助!

【讨论】:

感谢您的回答,请检查我在问题中所做的修改。 感谢您的更新。我仍然对如何在 return 语句中设置小部件状态感到困惑。是不是因为在 return 语句中运行的所有函数和表达式最终都会影响到小部件的状态? Yes 状态将更新,因为您正在执行 _products.add('More stuff') ,其中 'More stuff' 将被添加到 _products 中,无论您在哪里调用它。 也明白了,setState 被调用了,小部件将被重建,_products 将添加新数据。【参考方案2】:

为了记录,您正在做的推荐语法是:

RaisedButton(
    onPressed: () 
      setState(() 
        print('hello');
        _products.add('More stuff');
      );
    ,
    child: Text('Add Product'),
),

(args) =&gt; statements 的语法 不是 Dart 编写函数体的方式,你可以使用 (args) statements (args) =&gt; singleExpression

另外,您需要用分号 ; 而不是逗号来终止语句。

正如其他人所指出的,您使用(args) =&gt; print("something"), somethingElse 的语法实际上是创建一个集合(Set&lt;void&gt;,因为print 的返回类型是void)并返回它。

这是一场小语法错误的完美风暴,这对 JavaScript 程序员来说似乎是合理的,但实际上这些错误在 Dart 中意味着完全不同的东西。 而且,更糟糕的是,代码有效。集合字面量将按顺序评估其表达式,并且无论如何都没有人看到创建的集合。语法只是没有概括——你不能将任何表达式更改为,比如说,一个 for 循环(但是,你将能够在下一个版本的 Dart 中)。

因此,在 Dart 中,切勿使用 =&gt; ,除非您想要返回一个集合或地图。

【讨论】:

嗨,谢谢。是的,我知道推荐的方法就是您所建议的。当我在玩代码并且我认为不起作用的东西时,这个问题出现了。

以上是关于程序流程图中带有箭头的线段表示的是?的主要内容,如果未能解决你的问题,请参考以下文章

如何画流程图中的箭头?

请问WORD文档中怎么做流程图,就是那种带箭头和框框的,谢谢了

pyqtgraph中带有箭头的自定义LinearRegionItem

visio 程序设计流程图合符号含义

程序流程图

流程控制与数组集合