Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème avec les tableaux

tableau double problème

Sujet résolu
    8 février 2016 à 12:00:25

    Bonjour j'ai un petit problème , je ne sais pas comment faire pour faire que si la réponse de la personne est dans le tableau 1 est bien il se passe des choses , comment faire svp ?

    La dernière ligne if (reponse.equals(tableau[1][])); ne marche pas , c'est la mon problème.

    package entrainement;
    
    import java.util.Scanner;
    
    public class ent {
    
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int reponse;
    		int tableau [] [] = {{0,2,4,6,8,10},{1,3,5,7,9}};
    		do {
    		System.out.println("Veuilez entrer un nombre en 0 et 10 je vous dirais si il est paire ou imparire");
            reponse = sc.nextInt();
    		} while (reponse > 10 || reponse < 0);
    		if (reponse.equals(tableau[1][]));
    	}
    
    }
    

    -
    Edité par Nathoumini 8 février 2016 à 12:02:05

    • Partager sur Facebook
    • Partager sur Twitter
      8 février 2016 à 12:18:39

      Salut,

      (Je pars du principe que tu veux travailler les tableaux 2D, car il y a bien plus simple pour vérifier si un nombre est pair ou impair ^^ )

      Garde le réponse.equals(); pour les String ;)

      Partons du fait que tu fais un if(reponse == tableau[1][]). Tu cherche a comparer un int (reponse) avec un tableau (car un tableau 2D est un tableau composé de tableau).

      Il te faut donc regarder chaque valeur du tableau de dimension 0 ou 1 et la comparer avec la réponse attendue. De plus un if(condition) tout seul ne va rien faire, autant afficher quelque chose ! Le plus simple pour ton exercice est d'utiliser un boolean (enfin il y a énormément de solutions hein, comme d'hab ^^ ). On met ce boolean a vrai, et on parcours les indices de tableau [1] (soit les chiffres impair). Si on trouve que reponse == un impair, alors on passe le boolean a false. Après la boucle on check la réponse !

      boolean pair = true;
      
      for(int j = 0 ; j < tableau[1].length ; j++){
        if (reponse == tableau[1][j]){
        pair = false;
       }
      }
      if(pair){
       System.out.println("C'est pair");
      }else{
       System.out.println("C'est impair");
      }


      Si ce n'est pas clair (surtout sur les tableaux 2D) n’hésites pas ^^

      Bon courage

      -
      Edité par BabC 10 février 2016 à 8:56:58

      • Partager sur Facebook
      • Partager sur Twitter
        9 février 2016 à 17:13:09

        Merci mais je n'ais pas vraiment compris pourquoi il y a boolean pair = false; et pair = false; (je ne sais pas vraiment ce qu'est un boolean).
        • Partager sur Facebook
        • Partager sur Twitter
          9 février 2016 à 17:28:49

          et tableau[1].length  signifie bien le nombre de chiffre qu'il y a dans le tableau 1 ?

          • Partager sur Facebook
          • Partager sur Twitter
            10 février 2016 à 9:05:14

            Oula en plus j'ai fait une faute sur mon boolean (j'ai modifié mon code).

            Un boolean est un type de variable qui peut avoir uniquement deux valeurs : true (vrai) et false (faux).

            J'instancie d'abord mon boolean a vrai pour dire "On suppose que le chiffre est pair".

            boolean pair = true;

            Puis je vais comparer la valeur du chiffre utilisateur par rapport a chaque valeur du tableau des impairs. Si je trouve que le chiffre utilisateur est égal a une valeur du tableau, cela signifie que le chiffre utilisateur est impair, il faut donc passer le boolean a faux pour pouvoir afficher le résultat a la fin (Afficher dans la console pair ou impair)

            for(int j = 0 ; j < tableau[1].length ; j++){
              if (reponse == tableau[1][j]){
              pair = false;
             }
            }
            Le ".length" va te retourner la longueur (traduction anglaise) du tableau, donc tableau[1].length va bien te dire le nombre de valeur dans tableau 1 (qui est le tableau des impairs)




            • Partager sur Facebook
            • Partager sur Twitter
              10 février 2016 à 11:20:46

              Une dernière question , pourquoi fait on j = 0 et ensuite j++ pourquoi ne pas mettre j = 1 directement sa revient au même non ?
              • Partager sur Facebook
              • Partager sur Twitter
                10 février 2016 à 11:33:47

                C'est de cette manière dont marche les boucles for

                for(premiere valeur ; valeur finale ; prochaine valeur){
                 // fait qqch
                }


                A chaque itération, la valeur va changer. Cela permet de compacter cela

                tab[0]=1;
                tab[1]=1;
                tab[2]=1;
                tab[3]=1;
                tab[4]=1;
                tab[5]=1;
                tab[6]=1;

                En :

                for(int i = 0 ; i < tab.length ; i++){
                 tab[i] = 1;
                 System.out.println("Indice :" + i); 
                }


                Ce sont les bases de la programmation/algorithmie. Tu travailles déjà sur des tableaux 2D sans maitriser les boucles for, il y a un petit problème ici ^^

                • Partager sur Facebook
                • Partager sur Twitter

                problème avec les tableaux

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown