Palindrome

Bonjour,

Je veux écrire un programme java qui teste si un tableau est un palindrome
J'ai essayé mais il ya une erreur dans le main du programme ,que j'arrive pas à la résoudre

public class Palindrome {

public static boolean palindrome(int [] tab){
boolean r=false;

int j= tab.length;
for(int i=0;(i<=j)&&(r=false);i++){
if (tab[i]==tab[j]){
r=true;
}
else{
i++;
j--;}
}return r;
}

public static void main(String[] args) {
int[]tab={1,2,3,4,3,2,1}; //<gras>il affiche :incompatible type</gras>
if (palindrome(tab=true))
{
System.out.print("Le tableau est palindrome");
}
else

System.out.print("Le tableau n'est palindrome");
}
}

Et merci d'avance

2 réponses

  1. Contributeur
    Salut.
    La programmation ce n'est pas jeter en vrac des instruction qui ont l'air de loin vaguement juste et de voir ce que ça donne !
    Chaque chose que tu écris doit être pensé, justifier et comprise.
    Qu'est-ce que veux dire cette instruction :
    if (palindrome(tab=true)) ?????
    Je passe sur les autres erreurs qui sont plus minime.
    Puis viens ta boucle for dans la fonction palindrome : compliqué. La base est bonne mais tu va chercher trop loin. Il y a plus simple : le tableau est un palindrome jusqu'à ce qu'on prouve le contraire, ça ne sert à rien d'aller jusqu'au bout. En plus, je crois que ta boucle ne fonctionne pas.
    0
    1. Modérateur
      En effet, la boucle ne peut pas fonctionner à cause du &&(r=false)
      Il faut absolument distinguer l'opérateur d'affectation = avec l'opérateur de comparaison ==

      Remarque : il n'y a pas d'erreur sur la ligne en gras.
      0
  2. Salut,

    C'est normal:

    La méthode palindrome attend le paramètre (int [] tab) :
    donne le lui.

    Tu attend en retour un boolean :
    demande le.

    boolean r = palindrome(tab);
      if(r)
             {
    .........
    


    Il n'y aura pus qu'à mettre palindrome(...) au point...
    0