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