我刚开始学习C编程。使用Java一段时间后的语言。
我目前正尝试以下列方式使用三元组:
(currIndex == 0)? return 1:currIndex - ;
我知道这不是传统的作业形式:
max = (a> b)?a:b
我正在尝试做什么?如果没有,原因是什么?
(我的动机是保持代码简短,因为这一行会在switch-case表达式中多次出现)
万分感谢。
答案 0 :(得分:3)
如果如你所说的那样,你仍然会返回一个值,那么是的,这不会是一个问题,除了你实际上不能这样做的问题(return
不允许在那里)。要解决它,和使代码更容易理解,您可以这样做:
if (curindex == 0)
return 1;
--curindex;
/* Rest of code */
在这种情况下不需要else
,因为else
部分是减少和代码的其余部分,如果你不这样做,你将不会这样做来自函数的return
。
答案 1 :(得分:1)
为什么要在这里使用三元运算符? currIndex
似乎是一个局部变量,即使你返回它也不会丢失任何东西:
if (!currIndex--)
return 1;
答案 2 :(得分:1)
在C中,该问题的代码将无法编译:
(currIndex == 0) ? return 1 : currIndex--;
return
语句不是可以嵌入到三元运算符中的表达式。
你可以写:
return (currIndex == 0) ? 1 : currIndex--;
尽管如果currIndex
是一个全局变量(在函数外部定义;它可能是文件的本地变量,也可能是整个程序的全局变量),减量只会有意义。