代码之家  ›  专栏  ›  技术社区  ›  Koekiebox

JavaV.NET中的(或)逻辑运算符〔关闭〕

  •  -3
  • Koekiebox  · 技术社区  · 15 年前

    我已经用Java(主要是)和.NET编码了一段时间。

    我发现的是 || .NET中的逻辑运算符与 γ Java中的运算符。

    让我们看看下面的Java代码:

    Object obj = null;
    
    if(obj == null || obj.toString().isEmpty()){
        System.out.println("Object is null");
    }
    

    上述代码的结果将是:

    对象为空

    原因是 obj == null true 第二个表达式没有被计算。如果是的话,我会收到 java.lang.NullPointerException .

    如果我用单曲或者( | )我也会收到 NullPointerException (两者都进行了评估)。

    我的问题是:

    如果代码是C*Y,我将总是得到ObjutTrEnEngEnToSt集等异常,因为OBJ值为NULL,而第二个表达式总是被评估(不管操作符),这意味着C中的结果与Java中的结果不同。 如果要更改C代码以正常工作,我必须创建两个if语句。

    在C语言中没有比Java更容易的方法吗?(如果有两个表达式,请将其保持为一个)

    谢谢您。

    4 回复  |  直到 15 年前
        1
  •  15
  •   Marc Gravell    15 年前

    || && | &

        object obj = null;
    
        if(obj == null || string.IsNullOrEmpty(obj.ToString())) {
            Console.WriteLine("Object is null");
        }
    
        3
  •  1
  •   Berlin Brown    15 年前

    java language feature

    java conditional-and operator

    && ||

    && & |

    • x && y x & y y x false
    • x || y x | y
        4
  •  0
  •   gigadot    15 年前

    推荐文章