Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 有没有办法在Dart的循环中使用三元表达式和continue语句_Flutter_Dart - Fatal编程技术网

Flutter 有没有办法在Dart的循环中使用三元表达式和continue语句

Flutter 有没有办法在Dart的循环中使用三元表达式和continue语句,flutter,dart,Flutter,Dart,我试图在Dart中的do while循环中使用三元表达式以及continue或break构造,但出现编译错误 do { expr ? print('Conditionally print something') : continue; }while(expr == true); 上面的代码在编译时失败,但是如果我使用一对if-else决策结构,代码可以工作。因此,社区面临的问题是,为什么三元表达式不能与continue或break构造一起工作?三元运算符以(expr1)的形式接受3个表达

我试图在Dart中的do while循环中使用三元表达式以及continue或break构造,但出现编译错误

do
{
  expr ? print('Conditionally print something') : continue;

}while(expr == true);

上面的代码在编译时失败,但是如果我使用一对if-else决策结构,代码可以工作。因此,社区面临的问题是,为什么三元表达式不能与continue或break构造一起工作?

三元运算符以
(expr1)的形式接受3个表达式?(expr2):(expr3)。


您不能在三元运算符中执行语句,也不能仅在dart中执行语句,也不能在其他语言中执行语句。因为break和continue不是表达式而是语句,所以不能在这里使用它们

三元运算符以
(expr1)的形式使用3个表达式?(expr2):(expr3)。


您不能在三元运算符中执行语句,也不能仅在dart中执行语句,也不能在其他语言中执行语句。因为break和continue不是表达式,而是语句,所以不能在这里使用它们,因为
三元运算符
正在返回一个值。使用以下语法:

condition ? expresion1 : expression2
这意味着:

如果条件为true,则返回表达式1。如果不是,则返回表达式2

所以,您不能使用这样的语句:

print('Conditionally print something')


因为一个
三元运算符正在返回一个值。使用以下语法:

condition ? expresion1 : expression2
这意味着:

如果条件为true,则返回表达式1。如果不是,则返回表达式2

所以,您不能使用这样的语句:

print('Conditionally print something')

  • 不,你不能这么做
  • continue是一个Dart语句(如下所示),print是一个函数
首先

  • 在Dart语言规范中,第17.23节解释了它的工作原理。

  • 搜索原始文档,因为复制/粘贴似乎不正常

17.23有条件的

条件表达式根据布尔值计算两个表达式中的一个 条件

{conditionalExpression}::={ifNullExpression} ('?'{expressionWithoutCascade}':'{expressionWithoutCascade})? 形式为e1?e2:e3的条件表达式c的求值过程如下

如下: 首先,将e1求值为对象o1。如果o1的运行时类型不是bool,则为动态错误。如果r为真,那么c的值是 评估e2的表达。否则,c的值是评估的结果 表达式e3

正如您所见,三元运算符需要表达式,但请继续,在相同的PDF中,语言规范定义为语句、保留字,如下所示:

18条语句

语句是可以在运行时执行的Dart代码片段。 语句与表达式不同,它的计算结果不是对象,而是对象 执行它们对程序状态和控制流的影响

第三

在打印的情况下,我想它是一个函数,没有找到规范。也许它返回无效。 我们仍然可以问自己,为什么不能将continue放在函数中,即使是在类似()的lambda中(=>{continue;}或类似的函数中。简短的回答是,正如continue语句的规范中所说的,如果不是在一段时间内,等会给出一个编译错误。如果它在一个函数中,它会阻止该函数到达return语句,三元函数也会期望返回值

我们还可以做更多的研究,很多东西都在规范之内

  • 当发生类似情况时,您也可以在不指定语言的情况下进行搜索,以获取有关JAVA或C#的信息,这可能会对您有所帮助
  • 似乎Swift语言将允许在三元结构中继续和中断,根据本文-
      • 不,你不能这么做
      • continue是一个Dart语句(如下所示),print是一个函数
      首先

      • 在Dart语言规范中,第17.23节解释了它的工作原理。

      • 搜索原始文档,因为复制/粘贴似乎不正常

      17.23有条件的

      条件表达式根据布尔值计算两个表达式中的一个 条件

      {conditionalExpression}::={ifNullExpression} ('?'{expressionWithoutCascade}':'{expressionWithoutCascade})? 形式为e1?e2:e3的条件表达式c的求值过程如下

      如下: 首先,将e1求值为对象o1。如果o1的运行时类型不是bool,则为动态错误。如果r为真,那么c的值是 评估e2的表达。否则,c的值是评估的结果 表达式e3

      正如您所见,三元运算符需要表达式,但请继续,在相同的PDF中,语言规范定义为语句、保留字,如下所示:

      18条语句

      语句是可以在运行时执行的Dart代码片段。 语句与表达式不同,它的计算结果不是对象,而是对象 执行它们对程序状态和控制流的影响

      第三

      在打印的情况下,我想它是一个函数,没有找到规范。也许它返回无效。 我们仍然可以问自己,为什么不能将continue放在函数中,即使是在类似()的lambda中(=>{continue;}或类似的函数中。简短的回答是,正如continue语句的规范中所说的,如果不是在一段时间内,等会给出一个编译错误。如果它在一个函数中,它将阻止该函数