-1

我正在尝试获取一些输入字符串并有一个

do {
} while 

循环匹配字符串

while (!sqlw.equals(w) && !sqlc.equals(c)); 

但是,如果其中一个或另一个匹配,而不是两者都匹配,则返回正匹配。有任何想法吗?我想这很简单。

4

2 回答 2

0

equals 方法返回一个布尔值。试试 sqlw.equals('w') == false。

还要确保您的数据类型在两种情况下都相同。一个可能是字符串,另一个可能是某种数组对象。

于 2012-07-10T21:58:47.017 回答
0

所以,问题是,在这一行:

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)));

它做同样的事情,但可能更忠实于你想要的东西(循环,而我们没有匹配两者)。

于 2012-07-10T22:04:50.883 回答