「bulletproof」というパッケージを使用してユーザーからの入力を取得するプログラムを作成しようとしています (完了、正常に動作します) が、一致を見つけると無限ループ エラーが発生します。私は少し頭がいっぱいで、コードが機能しない理由を完全に理解していないと感じています。私はこれを学ぼうとしているので、直接の答えを探しているわけではありませんが、どんな助けでも心から感謝します. ありがとう、私のコードは次のとおりです。
--編集-- プログラムが動作するようになりました。ご協力いただきありがとうございます。
import bulletproof.*;
public class A26_1 {
public static void main(String[] args) {
BPScanner kb = new BPScanner();
String reservedWordToCheck = kb.getStringFromUser("Enter a word to see if it's reserved or enter leave: ");
System.out.println(ReservedWordChecker(reservedWordToCheck));
}
public static String ReservedWordChecker(String reservedWordToCheck) {
String[] table = {
"abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "const",
"continue", "default", "do", "double", "enum", "extends", "final", "finally", "float",
"for", "goto", "if", "implements", "import", "instanceof", "int", "interface", "long", "native",
"new", "package", "private", "protected", "public", "return", "short", "static", "strictfp", "super",
"switch", "synchronized", "this", "throw", "throws", "transient", "try", "void", "volatile", "while"
};
while (true) {
if (reservedWordToCheck.equalsIgnoreCase("leave"))
break;
boolean found = false;
for (int i=0; i < table.length; i++) {
if (reservedWordToCheck.equalsIgnoreCase(table[i])) {
found = true;
break;
}
if (found)
System.out.println("Yeah, " + reservedWordToCheck + ", is reserved as a Java identifier.");
else
System.out.println("Nope, the word " + reservedWordToCheck + ", isn't reserved. Go hog wild.");
}
System.out.println("OK BYE");
} return reservedWordToCheck;
}
}