if语句中的条件

时间:2011-03-11 07:29:34

标签: java

如果条件包含字符串,

可以吗? 例如

string s="abs";
if(s) or if(s==null) or if(s.equals(""))

以上哪个是正确的? 也写整数..

int value=5;

if(value) then condition

是正确的吗?

4 个答案:

答案 0 :(得分:4)

if语句中的条件必须是boolean表达式。

这意味着它必须是 类型boolean

Stringint都不是boolean,因此以下两个有效:

if (someString) {}
if (someInt) {}

当然,您可以以某种方式拥有包含boolean值的String个表达式。以下工作:

if (someString == null) {}
if (someString.equals("")) {}

他们都编译但行为不同。第一个将检查someString是否已设置为null(即它根本不引用String个对象)。如果someString引用空String(长度为0的那个),则第二个将检查。

答案 1 :(得分:2)

我建议考虑另一种选择,

if("expected".equals(s))

这种方法的优点是当s == null此表达式为假而不是抛出NullPointerException。

答案 2 :(得分:0)

在Java中,如果s不是布尔值,则不能if (s)

答案 3 :(得分:0)

在java expect boolean中,如果条件检查,则不允许任何内容。

甚至在java中也不允许赋值,这与其他语言不同。 但特殊情况如

boolean b =false;
if(b=true)
    System.out.println("true");

工作正常。

因为 b = true 计算为布尔值。

相关问题