Objective c 目标C:具有多个语句的三元运算符

Objective c 目标C:具有多个语句的三元运算符,objective-c,ternary-operator,Objective C,Ternary Operator,正如标题所说,我想知道是否有一种方法可以在Objective C中使用三元运算符和多个语句。 我知道用javascript、php、C等其他语言可以很容易地完成,但我找不到针对Objective C的解决方案 我想实现如下内容: a>b?(陈述1,陈述2,陈述3):(陈述1,陈述2) 基本上,我只是想避免很多if-else块,以保持更好的代码可读性。 还请建议使用三元运算符而不是if-else块是否会显著损害应用程序性能。您可以轻松做到这一点;请注意,三元运算符只能包含表达式,包括逗号表达式。因

正如标题所说,我想知道是否有一种方法可以在Objective C中使用三元运算符和多个语句。 我知道用javascript、php、C等其他语言可以很容易地完成,但我找不到针对Objective C的解决方案

我想实现如下内容:

a>b?(陈述1,陈述2,陈述3):(陈述1,陈述2)

基本上,我只是想避免很多if-else块,以保持更好的代码可读性。
还请建议使用三元运算符而不是if-else块是否会显著损害应用程序性能。

您可以轻松做到这一点;请注意,三元运算符只能包含表达式,包括逗号表达式。因此,您的语句只能是表达式、赋值、方法调用等,而不能是if/return/while等。三元运算符需要一个结果,因此每组中最后的表达式必须具有相同的类型;您只需在每个列表的末尾添加(void)0即可


也就是说,您肯定没有使代码更具可读性。每一个读到它的人都会开始咒骂你,怀疑你的心智是否正常。所以不要这样做

你可以轻松做到这一点;请注意,三元运算符只能包含表达式,包括逗号表达式。因此,您的语句只能是表达式、赋值、方法调用等,而不能是if/return/while等。三元运算符需要一个结果,因此每组中最后的表达式必须具有相同的类型;您只需在每个列表的末尾添加(void)0即可


也就是说,您肯定没有使代码更具可读性。每一个读到它的人都会开始咒骂你,怀疑你的心智是否正常。所以不要这样做

你可以轻松做到这一点;请注意,三元运算符只能包含表达式,包括逗号表达式。因此,您的语句只能是表达式、赋值、方法调用等,而不能是if/return/while等。三元运算符需要一个结果,因此每组中最后的表达式必须具有相同的类型;您只需在每个列表的末尾添加(void)0即可


也就是说,您肯定没有使代码更具可读性。每一个读到它的人都会开始咒骂你,怀疑你的心智是否正常。所以不要这样做

你可以轻松做到这一点;请注意,三元运算符只能包含表达式,包括逗号表达式。因此,您的语句只能是表达式、赋值、方法调用等,而不能是if/return/while等。三元运算符需要一个结果,因此每组中最后的表达式必须具有相同的类型;您只需在每个列表的末尾添加(void)0即可


也就是说,您肯定没有使代码更具可读性。每一个读到它的人都会开始咒骂你,怀疑你的心智是否正常。所以不要这样做

条件运算符
?:
不能替代
if
/
else
块。我相信你可以调整逻辑,使它工作,但这只会模糊的含义更多

我的问题是,“你在储蓄什么?”

if
/
else
块总共长7个字符

一个更大的问题是,“逻辑能否以更好的方式组合?”

  • 查看是否可以使用更少的
    if
    s以不同的方式完成流程
  • 寻找创建子例程的位置

条件运算符
?:
不能替代
if
/
else
块。我相信你可以调整逻辑,使它工作,但这只会模糊的含义更多

我的问题是,“你在储蓄什么?”

if
/
else
块总共长7个字符

一个更大的问题是,“逻辑能否以更好的方式组合?”

  • 查看是否可以使用更少的
    if
    s以不同的方式完成流程
  • 寻找创建子例程的位置

条件运算符
?:
不能替代
if
/
else
块。我相信你可以调整逻辑,使它工作,但这只会模糊的含义更多

我的问题是,“你在储蓄什么?”

if
/
else
块总共长7个字符

一个更大的问题是,“逻辑能否以更好的方式组合?”

  • 查看是否可以使用更少的
    if
    s以不同的方式完成流程
  • 寻找创建子例程的位置

条件运算符
?:
不能替代
if
/
else
块。我相信你可以调整逻辑,使它工作,但这只会模糊的含义更多

我的问题是,“你在储蓄什么?”

if
/
else
块总共长7个字符

一个更大的问题是,“逻辑能否以更好的方式组合?”

  • 查看是否可以使用更少的
    if
    s以不同的方式完成流程
  • 寻找创建子例程的位置

    • 您的问题(@user3752049)的解决方案是:

      a>b^{statement1;statement2;statement3;}():^{statement1;statement2;}()


      谢谢

      您的问题(@user3752049)的解决方案是:

      a>b^{statement1;statement2;statement3;}():^{statement1;statement2;}()


      谢谢

      您的问题(@user3752049)的解决方案是:

      a>b^{statement1;statement2;statement3;}():^{statement1;statement2;}()


      谢谢

      您的问题(@user3752049)的解决方案是:

      a>b^{statement1;statement2;statement3;}():^{statement1;statement2;}()


      谢谢

      这只会让你的代码变得复杂我同意,它是未读的
      a > b ? ( statement1, statement2, statement3 ) : ( statement1, statement2 );
      if (a > b) { statement1; statement2; statement3; } else { statement1; statement2; }