-1

私はいくつかの入力文字列を取り、

do {
} while 

文字列に一致するループ

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

ただし、これは、両方ではなく、どちらか一方が一致した場合に肯定的な一致を返します。何か案は?シンプルなものではないかと思います。

4

2 に答える 2

0

つまり、次の行にあります。

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

sqlw.equals(w) が true (!sqlw.equals(w) を false にする) または !sqlc.equals(c) が true (!sqlc.equals(c) を false にする) の場合、式は false になります。

&& を || に置き換えてみてください。そのようです

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

このように、式は !sqlw.equals(w) と !sqlc.equals(c) が両方とも false の場合 (つまり、両方が一致する場合) にのみ false になります。

編集:次のように変更することもできます

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

これは同じことを行いますが、おそらくあなたが望んでいたものにもう少し忠実です (両方を一致させていない間はループします)。

于 2012-07-10T22:04:50.883 に答える
0

equals メソッドはブール値を返します。sqlw.equals('w') == false を試してください。

また、どちらの場合もデータ型が同じであることを確認してください。1 つは文字列で、もう 1 つは何らかの配列オブジェクトです。

于 2012-07-10T21:58:47.017 に答える