Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用“理解Switch语句”&&引用;签名_Java_Android_Switch Statement_Android Softkeyboard_Custom Keyboard - Fatal编程技术网

Java 用“理解Switch语句”&&引用;签名

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语句。我搜索了开关语句文档,但找不到“&”登录开关。我也在其他地方寻找解决方案,但到目前为止还没有找到解决方案 &与开关语句无关;这只

我正在为Android设计一个定制键盘。我使用了一个示例软键盘项目。在类中有一个switch语句,如bellow:

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语句的结果呢?这完全取决于
选项,因为我认为其他两个变量是常量。