Palindrom w tablicy char rekurencyjnie - wpadanie programu w nieskończoną pętlę

0

A więc, mam do wykonania zadanie

Utwórz metodę, która rekurencyjnie odwróci ciąg znaków dostarczony jako argument metody char[].

Napisałem coś takiego

public class ZadanieII {

	 public static void main(String args[])
	   {
	      String original = "rrututurr";
	 
	      
	      char[] tab = original.toCharArray();;
	      
	      System.out.println(isPal(tab, 0, tab.length-1));
	      
	      
	      
	   	}
	 public static boolean isPal(char[] tab, int start, int end)
	 {	
		 while(start < end)
		 {
			 if (tab[start] == tab[end]) 
			 {
				 isPal(tab, start++, end--);
			 }
			 else return false;
		 }
		 return true;
		
	 }
}

Problem polega na tym, że gdy słowo jest palindromem to program zaczyna coś mielić i mielić, i mógłby tak mielić w nieskończoność nie zwracając wyniku. Gdy słowo nie jest palindromem to program wyświetla wartość normalnie.

Siedzę nad tym od kilkunastu minut, kombinuje to w tą to tamtą i nadal to samo, pomożecie mi znaleźć błąd?
Z góry dziękuje,
Pozdrawiam,
krisszschtoff

1

Na tym forum już ponad 100 razy powiedziałem: nigdy nie używać i++ jeżeli da się użyć ++i, bo ten brzydki nawyk się zemści.
To jest jeden z tych przypadków - zemścił się brzydki nawyk.

     public static boolean isPal(char[] tab, int start, int end)
     {    
         if(start >= end) return true;
         if(tab[start]!=tab[end]) return false;
         return isPal(tab,++start,--end);
     }
0

Wielkie dzięki. Obiecuje, że wezmę sobie do serca Twoją rade.
Miłego wieczoru.

1 użytkowników online, w tym zalogowanych: 0, gości: 1