使用if

时间:2016-11-10 10:35:08

标签: java

这可能看起来有点愚蠢,但它确实抓住了我。

如果charString不包含单词"嗨"我想抛出错误。

所以我写了

if(!charString.contains("Hi"))
   /// throw error on screen

现在,要求发生了变化。如果charString不包含" Hello",我还想抛出错误。

  

所以,要求是我不应该在charString时抛出错误   包含 您好您好

所以我写道:

if(!charString.contains("Hi") || !charString.contains("Hello"))
   /// throw error on screen

令我恐惧的是,我意识到在编写上面的代码时我非常错误。我怎么能用单个if语句写呢?

要求是:

  

"如果charString包含Hi或Hello,请不要抛出错误"

2 个答案:

答案 0 :(得分:3)

非常清晰的方式(以需要评论的多余块为代价)是写

if (charString.contains("Hi") || charString.contains("Hello")){
    // do nothing
} else {
    // throw an error
}

这相当于不那么挑眉的

if (!(charString.contains("Hi") || charString.contains("Hello"))){
    // throw error
}

或(由于De Morgan的法律https://en.wikipedia.org/wiki/De_Morgan%27s_laws

if (!charString.contains("Hi") && !charString.contains("Hello"))){
    // throw error
}

答案 1 :(得分:1)

据我了解,如果不包含Hi并且不包含Hello,则需要抛出错误。

if(!charString.contains("Hi") && !charString.contains("Hello"))

您之前的代码是:

如果字符串不包含"嗨"或者字符串不包含" Hello"抛出错误。这意味着至少有一个字符串的运气导致了错误。

让我们用简单的英语描述你的流程:

IF charString contains "Hi" or "Hello" (so is a way of saying "Welcome")
    proceed
ELSE
    throw the error.

我们也可以使用否定:

 IF charString doesn't contain one of "Hi" or "Hello" (so is a way of saying "Welcome")
    throw the error
ELSE
    proceed.

在Java中,他们将是:

if (charString.contains("Hi") || charString.contains("Hello")) {
    //it's good
} else {
    //it's bad
}

或第二种情况:

    NOT(charString contains Hi or charString contains Hello)
if (!(charString.contains("Hi") || charString.contains("Hello"))) {
    //it's bad
} else {
    //it's good
}