空或非空

时间:2015-06-27 13:26:26

标签: java

我知道在Java中,变量可以是null,也可以不是String abc = null; //or a value or anything or any other thing I don't know like undefined vs if (abc == null) { System.out.println("IF"); } else if (abc != null) { System.out.println("ELSE IF"); } 。所以我想问一下,还有其他可能吗?

else

在那段代码中是否需要插入String abc = null; //or a value or anything if (abc == null) { System.out.println("IF"); } else if (abc != null) { System.out.println("ELSE IF"); } else { //any possibility to come here ??? } 分支?像这样:

      K >= 1 and less than 10^9,

      N >=1 and less than 10^5,

      heights(both boy an girl)>=1 and less than 10^9.

4 个答案:

答案 0 :(得分:3)

  

我知道在java中,变量可以为null或不为null。

事实上,这是不对的:

int test = null;  // Compilation error
if (test == null) // Compilation error

类型为基本类型的变量不能null且无法与null进行比较。

只有类型为引用类型的变量(即类类型或数组类型)才能将null作为值。

  

所以我想问是否还有其他可能性

假设您正在谈论参考类型,那么编号

但这是一个合乎逻辑的重言式。如果任何变量可以null作为值,则其值为null ...或者不是null

通常 1 ,对于任何类型TtT类型的变量,v是类型的值T然后

 (t != V) <=> !(t == v)

英文:t的值为v ...或者不是。

1 - 有一个例外。如果Tfloatdouble,并且您正在与NaN值进行比较,则==总是会false,即使您正在测试NaN == NaN }

答案 1 :(得分:1)

Java有基元和对象。

int 这样的原语不能为空(他们有大兄弟,但实际上可以像整数包装一样)。

谈论我们所说的对象的“无效性”会重新引用参考变量或链接到它们。如果链接引用某个对象,则不为null;如果不引用,则为 null。就是这样,期间,没有其他情况。

答案 2 :(得分:0)

此处不需要IF .. ELSE IF .. ELSE构造,因为只有两种可能性NULLNOT NULL。简单的IF .. ELSE构造就足够了。更好的方法是使用Ternary Operator之类的

string str = (abc == null) ? "IF" : "ELSE IF";
System.out.println(str); 

(OR)

System.out.println((abc == null) ? "IF" : "ELSE IF"); 

答案 3 :(得分:0)

使用if..else代替if...else if...else。你只有两种可能性。

String abc=null;

if(abc==null){
   System.out.println("IF");
}else{
   System.out.println("ELSE");
}