我是android的初学者,我正在看这个教程并且遇到了这个代码:
int temp = (sensor.getType() == Sensor.TYPE_ACCELEROMETER) ? 1 : 0;
有人可以帮我解释一下。
可能这个问题是重复的,但我不知道该搜索什么。 如果你能告诉我它在C#中的含义,那将会很棒。
答案 0 :(得分:3)
(sensor.getType() == Sensor.TYPE_ACCELEROMETER) ? 1 : 0;
装置
int result;
if (sensor.getType() == Sensor.TYPE_ACCELEROMETER)
result = 1;
else
result = 0;
答案 1 :(得分:2)
我不是100%肯定你想要解释的,但似乎你不理解/不了解Java中的ternary operator
。
它实质上意味着:
if (sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
temp = 1;
}
else {
temp = 0;
}
此外,我不确定这是否是正确的Java代码。您似乎遗漏了一些问题,因为三元运算符很可能属于赋值或返回语句。
答案 2 :(得分:1)
如果你在谈论括号,问号和冒号,那么......就像这样
(Condition ? If_condition_is_true_do_this : otherwise_do_this);
完全像这样:
if(Condition)
If_condition_is_true_do_this
else
otherwise_do_this
它与C#中的语法相同;
答案 3 :(得分:1)
这是Java,而不是C#,但也存在三元运算符。
关于三元运营商,请点击here。
(完整)代码(不是你的代码片段)在这里做的是检查sensor
变量与类常量Sensor.TYPE_ACCELEROMETER
的相等性,如果它们相等则在左边分配缺失的变量否则为0。