これは私が理解するのに苦労している線です
return (match(regex.substring(1), s)|| match(regex, s.substring(1)));
私の理解では、最初のメソッドがfalseの場合、後者が呼び出されます。そこで、テストする簡単なプログラムを作成しました。
public static void main(String[] args)
{
System.out.println(test(5));
}
public static boolean test(int a)
{
System.out.println(a);
if (a>10)
return true;
if (a==4)
return false;
else
return (test(a-1) || (test(a+1)));
}
しかし、それは5 4 6 5 46..を出力するだけです。