C++ “使用”是一种良好的做法吗;“三元运算”;在;至于;循环条件?
在for-loop条件下使用三元运算是一种良好的做法。 我问这个问题是因为我遇到了这样一种情况,即在三元操作中,将在for-loop条件下解决我的问题 例如:C++ “使用”是一种良好的做法吗;“三元运算”;在;至于;循环条件?,c++,for-loop,conditional-statements,ternary-operator,C++,For Loop,Conditional Statements,Ternary Operator,在for-loop条件下使用三元运算是一种良好的做法。 我问这个问题是因为我遇到了这样一种情况,即在三元操作中,将在for-loop条件下解决我的问题 例如: for( short i = 0 ; i < count ; i++ ){ for( short j = 0 ; j < ( ( x[i] < y[i] ) ? x[i] : y[i] ) ; j++ ){ //Here I am using ternary operation at for loop condit
for( short i = 0 ; i < count ; i++ ){
for( short j = 0 ; j < ( ( x[i] < y[i] ) ? x[i] : y[i] ) ; j++ ){ //Here I am using ternary operation at for loop condition place
//.....
//.....Some Code Here .......
//.....
}
}
for(短i=0;i
我会选择min(x[I],y[I])
,只是因为它更清晰,但我看不出你的代码有什么直接的问题。如果你对一般使用三元运算符没问题,那么没有理由不在for循环条件下使用它。(我自己也喜欢三元运算符,但我知道有些人认为它很模糊)我个人喜欢min(x[I],y[I])
。但是,您的可读性问题可以通过预先计算值并使用它来解决:
for( short i = 0 ; i < count ; i++ ){
int jCount = ( x[i] < y[i] ) ? x[i] : y[i]; // or min equivalent
for( short j = 0 ; j < jCount ; j++ ){
}
}
for(短i=0;i
这在某种程度上改变了行为,因为它使条件对
j
循环内的x[i]
和y[i]
的变化视而不见。我不确定这是否适合您的用例。我想使用三元运算符没有问题,只是它会使代码不可读。但是像这样的条件x[i]
有时会产生问题,如果您也在修改x[i]和y[i]
insdide for循环。所以我建议不要使用,除非你真的知道你在做什么,我看不出有什么问题
我的建议。1.
short
更改为int
2. <代码>#定义三元(可选) 定义条件(n)((x[n]
j
值得考虑;考虑实际表达式可能有类似的方法……如果您将其设置为宏,我更希望您将其设置为函数,说真的。@Xeo:对于上述情况,我将使用内联函数。
#define cond(n) (( x[n] < y[n] ) ? x[n] : y[n] )
for( int a = 0; a < count; a++)
for( int b = 0; b < cond(a), b++)
{
........code...............
}