这可能看起来有点愚蠢,但它确实抓住了我。
如果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,请不要抛出错误"
答案 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
}