Java 用“理解Switch语句”&&引用;签名
我正在为Android设计一个定制键盘。我使用了一个示例软键盘项目。在类中有一个switch语句,如bellow:Java 用“理解Switch语句”&&引用;签名,java,android,switch-statement,android-softkeyboard,custom-keyboard,Java,Android,Switch Statement,Android Softkeyboard,Custom Keyboard,我正在为Android设计一个定制键盘。我使用了一个示例软键盘项目。在类中有一个switch语句,如bellow: switch (options & (EditorInfo.IME_MASK_ACTION | EditorInfo.IME_FLAG_NO_ENTER_ACTION)) { //Cases } 我试图理解这个switch语句。我搜索了开关语句文档,但找不到“&”登录开关。我也在其他地方寻找解决方案,但到目前为止还没有找到解决方案 &与开关语句无关;这只
switch (options & (EditorInfo.IME_MASK_ACTION | EditorInfo.IME_FLAG_NO_ENTER_ACTION))
{
//Cases
}
我试图理解这个switch语句。我搜索了开关语句文档,但找不到“&”登录开关。我也在其他地方寻找解决方案,但到目前为止还没有找到解决方案
&
与开关
语句无关;这只是一个简单的问题。它使用(常量)int
值表达式(EditorInfo.IME\u MASK\u ACTION | EditorInfo.IME\u FLAG\u NO\u ENTER\u ACTION)
对选项的当前值进行位“和”。(该表达式中的|
是位OR运算符。)结果是int
值,然后由开关使用。这和写作是一样的:
int value = options & (EditorInfo.IME_MASK_ACTION | EditorInfo.IME_FLAG_NO_ENTER_ACTION);
switch (value)
{
//Cases
}
除非避免使用变量。该&
与开关
语句无关;这只是一个简单的问题。它使用(常量)int
值表达式(EditorInfo.IME\u MASK\u ACTION | EditorInfo.IME\u FLAG\u NO\u ENTER\u ACTION)
对选项的当前值进行位“和”。(该表达式中的|
是位OR运算符。)结果是int
值,然后由开关使用。这和写作是一样的:
int value = options & (EditorInfo.IME_MASK_ACTION | EditorInfo.IME_FLAG_NO_ENTER_ACTION);
switch (value)
{
//Cases
}
除非您避免使用变量。这里的&
是对提供的值执行AND运算的,而
是对值执行AND运算的按位OR运算符
和
按位和
|
按位或
如链接中所述
int a = 60; /* 60 = 0011 1100 */ /*Binary*/
int b = 13; /* 13 = 0000 1101 */
int c = 0;
c = a & b; /* 12 = 0000 1100 */
c = a | b; /* 61 = 0011 1101 */
这里,&
是对提供的值执行AND运算的运算符,|
是对值执行AND运算的按位OR运算符
和
按位和
|
按位或
如链接中所述
int a = 60; /* 60 = 0011 1100 */ /*Binary*/
int b = 13; /* 13 = 0000 1101 */
int c = 0;
c = a & b; /* 12 = 0000 1100 */
c = a | b; /* 61 = 0011 1101 */
谢谢你的迅速回复。现在我明白了。但是我如何才能识别switch语句的结果呢?这完全取决于选项,因为我认为其他两个变量都是常量。感谢您的快速响应。现在我明白了。但是我如何识别switch语句的结果呢?这完全取决于选项,因为我认为其他两个变量是常量。