Сопоставление шаблонов Java переходит в бесконечный цикл

Друг дал мне этот фрагмент кода и сказал, что в нем есть ошибка. И да, этот код работает вечно.

Я получил ответ:

Он работает> 10 ^ 15 лет, прежде чем что-либо напечатать.

public class Match {
     public static void main(String[] args) {
         Pattern p = Pattern.compile("(aa|aab?)+");
         int count = 0;
         for(String s = ""; s.length() < 200; s += "a")
             if (p.matcher(s).matches())
                 count++;
         System.out.println(count);
     }
}

Я действительно не понимал, почему я наблюдаю такое поведение, я новичок в java, у вас есть какие-нибудь предложения?

12
задан Y. Shoham 26 October 2011 в 05:02
поделиться