我正在尝试获取一些输入字符串并有一个
do {
} while
循环匹配字符串
while (!sqlw.equals(w) && !sqlc.equals(c));
但是,如果其中一个或另一个匹配,而不是两者都匹配,则返回正匹配。有任何想法吗?我想这很简单。
equals 方法返回一个布尔值。试试 sqlw.equals('w') == false。
还要确保您的数据类型在两种情况下都相同。一个可能是字符串,另一个可能是某种数组对象。
所以,问题是,在这一行:
while (!sqlw.equals(w) && !sqlc.equals(c));
如果 sqlw.equals(w) 为真(使 !sqlw.equals(w) 为假)或 !sqlc.equals(c) 为真(使 !sqlc.equals(c) 为假),则表达式变为假。
尝试用 || 替换 && 像这样
while (!sqlw.equals(w) || !sqlc.equals(c));
这样,只有当 !sqlw.equals(w) 和 !sqlc.equals(c) 都为假(即两者都匹配时)时,表达式才为假。
编辑:您也可以将其更改为
while (!(sqlw.equals(w) && sqlc.equals(c)));
它做同样的事情,但可能更忠实于你想要的东西(循环,而我们没有匹配两者)。