我不确定如何在while循环中计算这个表达式。 我知道当语句为真时,你做第一个,假,你做第二个,但它让我对有两个条件语句时我应该做什么感到困惑。
int x = 152487;
int ct1 = 0;
int ct2 = 0;
while(x > 0)
{ x % 2 ? x > 5 ? ct1++ : ct2++ : ct2++;
x /= 10;
}
printf("ct1: %dn", ct1);
printf("ct2: %dn", ct2);
将
表达式括起来,它就会很清楚。
x % 2 ? (x > 5 ? ct1++ : ct2++) : ct2++;
如果x
是奇数,则x % 2
的计算结果为 true
。这意味着上述表达式的值为
(x > 5 ? ct1++ : ct2++)
这又是一个条件表达式。如果x
为偶数,则表达式的计算结果为
ct2++