Java if语句中的条件

Java if语句中的条件,java,Java,if条件是否可以包含字符串? 比如说 string s="abs"; if(s) or if(s==null) or if(s.equals("")) 以上哪一项是正确的? 也写整数 int value=5; 说 是否正确?if语句中的条件必须是布尔表达式 这意味着它必须是布尔类型的东西 String和int都不是布尔值,因此以下两个不起作用: 当然,您可以使用以某种方式包含字符串值的布尔表达式。以下工作将起作用: 它们都编译,但行为不同。第一个将检查someString是否已设置为null

if条件是否可以包含字符串? 比如说

string s="abs";
if(s) or if(s==null) or if(s.equals(""))
以上哪一项是正确的? 也写整数

int value=5;

是否正确?

if语句中的条件必须是布尔表达式

这意味着它必须是布尔类型的东西

String和int都不是布尔值,因此以下两个不起作用:

当然,您可以使用以某种方式包含字符串值的布尔表达式。以下工作将起作用:

它们都编译,但行为不同。第一个将检查someString是否已设置为null,即它根本不引用String对象。第二个将检查someString是否引用了长度为0的空字符串。

if语句中的条件必须是布尔表达式

这意味着它必须是布尔类型的东西

String和int都不是布尔值,因此以下两个不起作用:

当然,您可以使用以某种方式包含字符串值的布尔表达式。以下工作将起作用:


它们都编译,但行为不同。第一个将检查someString是否已设置为null,即它根本不引用String对象。第二个选项将检查someString是否引用了长度为0的空字符串。

在Java中,如果s不是布尔值,则不能执行s。

在Java中,如果s不是布尔值,则不能执行s。

在Java expect boolean中,如果条件检查,则不允许执行任何操作

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

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


当b=true计算为布尔值时。

在java expect boolean中,if条件检查中不允许任何内容

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

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


因为b=true的计算结果是布尔值。

我建议考虑另一个选项

if("expected".equals(s))

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

我建议考虑另一个选项

if("expected".equals(s))

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

ifexpr:expr可以是您喜欢的每个布尔表达式。因此,if5和if无效。其他一切都是。。。。这些天他们在学校教什么?这不是一个真正的问题?很难说出这里要问什么。?真正地这可能是一个微不足道的问题,但其实并不难理解。ifexpr:expr可以是您喜欢的每一个布尔表达式。因此,if5和if无效。其他一切都是。。。。这些天他们在学校教什么?这不是一个真正的问题?很难说出这里要问什么。?真正地这可能是一个很小的问题,但其实并不难理解。@Thomas:对不起,我不明白你想说什么。我以为你能找到100个这样的问题。我错了。从这个角度来看,答案可能有一定的价值。@Thomas:有些重复实际上是有用的,特别是对于像这样的基本主题,因为初学者通常不知道要搜索哪些术语,而同样的问题用不同的措辞可能真的有助于他们找到答案。同意。为了有真正的价值,您可以解释为什么Java不支持这一点。这是获得成功的潜在动机。甚至会考虑投票。托马斯-这是一个从一般到糟糕问题的好答案。如果你对问题的质量有意见,不要在答案上发泄。关于为什么Java不允许这样做的讨论不太可能对@indira有帮助。@Thomas:对不起,我不明白你想说什么。我以为你可以找到100个这样的问题。我错了。从这个角度来看,答案可能有一定的价值。@Thomas:有些重复实际上是有用的,特别是对于像这样的基本主题,因为初学者通常不知道要搜索哪些术语,而同样的问题用不同的措辞可能真的有助于他们找到答案。同意。为了有真正的价值,您可以解释为什么Java不支持这一点。这是获得成功的潜在动机。甚至会考虑投票。托马斯-这是一个从一般到糟糕问题的好答案。如果你对问题的质量有意见,不要在答案上发泄。关于为什么Java不允许这样做的讨论不太可能对@indira有所帮助。
if("expected".equals(s))