0

我是 android 的初学者,我正在查看本教程并遇到了以下代码:

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

有人可以为我解释一下。

可能这个问题是重复的,但我不知道要搜索什么。如果你能告诉我它在 C# 中是什么,那就太好了。

4

4 回答 4

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

方法

int result;
if (sensor.getType() == Sensor.TYPE_ACCELEROMETER)
    result = 1;
else
    result = 0;
于 2013-07-23T18:49:06.743 回答
2

我不能 100% 确定您想要解释什么,但似乎您不了解/不了解ternary operatorJava 中的内容。

它本质上意味着:

if (sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
    temp = 1;
}
else {
    temp = 0;
}

此外,我不确定这是否是正确的 Java 代码。您似乎遗漏了一些问题,因为三元运算符很可能属于赋值语句或返回语句。

于 2013-07-23T18:50:51.587 回答
1

如果您在谈论括号,问号和冒号,那么......它就像这样

(Condition ? If_condition_is_true_do_this : otherwise_do_this);

就像这样做:

if(Condition)
  If_condition_is_true_do_this
else
  otherwise_do_this

它与 C# 中的语法相同;

于 2013-07-23T18:49:48.637 回答
1

这是 Java,而不是 C#,但那里也存在三元运算符。

关于三元运算符,请单击此处

(完整)代码(不是您的代码段)在这里所做的是检查sensor变量是否与类常量相等,Sensor.TYPE_ACCELEROMETER如果它们相等,则将左侧缺少的变量分配为 1,否则为 0。

于 2013-07-23T18:49:58.457 回答