为什么变量结果变为零后,每次又又增加1到5?
for (int i = 5; i >= -5; i--)
{
result = i >= 0 ? i : -i;
Console.Write("{0}\t", result);
}
输出:
5 4 3 2 1 0 1 2 3 4 5
答案 0 :(得分:2)
您下面的循环中i为[5、4、3、2、1、0, -1,-2,-3,-4,-5 ]。
for (int i = 5; i >= -5; i--)
此行:
result = i >= 0 ? i : -i;
说:
如果i大于或等于0,则将i放入结果中。否则将i * -1放入结果中。
对于小于0的值,-1 *该值给您一个正值。
答案 1 :(得分:0)
i
高于 0时,它会打印出i
(当然,它仍然是正数)。当i
切换到小于 小于0时,它会打印出负 i
。
负数的负数是正数(即-1 * -1 = 1),因此仍打印正数。
答案 2 :(得分:0)
三元运算符?的作用类似于if else语句,在这种情况下,如果循环为false (i <0)i的第一个值将为-1,但您的else语句声明:返回-1因此:-1 * -1 = 1。
记住
**Ternary operator (?) structure**
(condition) ? 1 : 0;
If condition is true (?) 1 : (Else) 0;