解释这行代码android

时间:2013-07-23 18:46:22

标签: java android

我是android的初学者,我正在看这个教程并且遇到了这个代码:

int temp = (sensor.getType() == Sensor.TYPE_ACCELEROMETER) ? 1 : 0;

有人可以帮我解释一下。

可能这个问题是重复的,但我不知道该搜索什么。 如果你能告诉我它在C#中的含义,那将会很棒。

4 个答案:

答案 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。