Java:mon prg n'affiche pas le résultat

Résolu
Bonjour,
mon prg n'affiche pas le résultat
public class TestArrays3 
{
  final static int rows=10;
  final static int columns=20;
  public static void main(String[]args)
  {
	 int product[][]=new int [rows][columns]; 
	 int rows=10;
	 int columns=20;
	 System.out.println("MULTIPLICATION TABLE");
	 System.out.println("");
	 int i,j;
	 for(i=10;i<rows;i++)
	 {
		 for(j=10;j<columns;j++)
		 {
			 product[i][j]=i*j;
			 System.out.println(""+product[i][j]);
		 }
		 System.out.println(""); 
	 }
  }
}


resulat affiche que
MULTIPLICATION TABLE

aidez moi svp

9 réponses

  1. regardez bien le prg a changé
    j'ai récupéré mon résultat;
    MULTIPLICATION TABLE
    100 110 120 130 140 150 160 170 180 190
    110 121 132 143 154 165 176 187 198 209
    120 132 144 156 168 180 192 204 216 228
    130
    140
    150
    160
    170
    180
    190 ... ... ... ... ... ... ... ... ... ... ... ... ... ... 361
    1. corrigé mon prg
      public class TestArrays3 
      {
        final static int rows=20;
        final static int columns=20;
        public static void main(String[]args)
        {
      	 System.out.println("MULTIPLICATION TABLE");
      	 System.out.println("");
      	 int i,j;
      	 for(i=10;i<rows;i++)
      	 {
      		 for(j=10;j<columns;j++)
      		 {
      			 System.out.print(i*j+"\t");	 
      		 }
      		 System.out.println(""); 
      	 }
        }
      }
      
      1. merci pour votre aide
        je veux qu'il s'affiche comme ça:

        MULTIPLICATION TABLE
        100 110 120 130 140 150 160 170 180 190
        110 121 132 143 154 165 176 187 198 209
        120 132 144 156 168 180 192 204 216 228
        130
        140
        150
        160
        170
        180
        190 ... ... ... ... ... ... ... ... ... ... ... ... ... ... 361

        merci d'avance
        1. Modérateur
          Je t'ai déjà expliqué au moins deux fois d'où venait le problème, alors je le fais une troisième fois, mais après j'arrête, apprends à lire les réponses qu'on te donne !

          Lorsque tu fais for(i=10;i<rows;i++) tu imposes que i commence à 10, or rows étant égal à 10 également, ça signifie que tu imposes que i soit inférieur à 10, et comme il y a incompatibilité, la boucle for s'arrête avant même qu'elle n'ait commencé ! Donc change tes bornes...
      2. tu n'a pas compléter le println dans cette instruction
        System.out.print(product[i][j]); 
        

        expliquez moi s'il vous plaît
        même en écrivant comme suivant je n'ai pas le résultat
        public class TestArrays3 
        {
          final static int rows=10;
          final static int columns=20;
          public static void main(String[]args)
          {
        	 //int product[][]=new int [rows][columns];
        	 int[][] product=new int [rows][columns];
        	 int rows=10;
        	 int columns=20;
        	 System.out.println("MULTIPLICATION TABLE");
        	 System.out.println("");
        	 int i,j;
        	 for(i=10;i<rows;i++)
        	 {
        		 for(j=20;j<columns;j++)
        		 {
        			 product[i][j]=i*j;
        			 //System.out.print(product[i][j]+"\t");
        		 }
        		 //System.out.println(""); 
        		 System.out.print(product[i][j]+"\t");
        	 }
          }
        }
        
        1. vous voulez que je fasse comme ça
          int i,j; 
            for(i=1;i<rows;i++) 
            { 
             for(j=1;j<columns;j++) 
             { 
              product[i][j]=i*j; 
              System.out.print(product[i][j]+"\t"); 
             } 
          

          en faisant comme ça résultat est la même
          1. Modérateur
            Faire comme ça oui, mais en gardant la valeurs de rows que tu avais au départ c'est à dire 10, et non pas 0 !
        2. bonjour
          tu n'a pas compléter le println dans cette instruction
          System.out.print(product[i][j]);

          merci
          1. public class TestArrays3 
            {
              final static int rows=0;
              final static int columns=20;
              public static void main(String[]args)
              {
            	 //int product[][]=new int [rows][columns];
            	 int[][] product=new int [rows][columns];
            	 //int rows=0;
            	 //int columns=;
            	 System.out.println("MULTIPLICATION TABLE");
            	 System.out.println("");
            	 int i,j;
            	 for(i=0;i<rows;i++)
            	 {
            		 for(j=1;j<columns;j++)
            		 {
            			 product[i][j]=i*j;
            			 System.out.print(product[i][j]);
            		 }
            		 System.out.println(""); 
            	 }
              }
            }
            

            j'ai changé mon code
            résultat est toujours

            MULTIPLICATION TABLE
            1. Modérateur
              Sauf que depuis tout à l'heure tu as changé la valeur de rows en la mettant à 0, et tu as donc le même problème tu initialises i à 0 en lui imposant d'être inférieur à 0 donc tu ne rentres pas dans la boucle.
          2. même en changeant comme ça ,s'affiche pas le résultat
            aidez moi svp
             int i,j;
            	 for(i=0;i<rows;i++)
            	 {
            		 for(j=1;j<columns;j++)
            		 {
            			 product[i][j]=i*j;
            			 System.out.print(""+product[i][j]);
            		 }
            
            1. Modérateur
              Avec ce code, ça devrait s'afficher ! Vérifies que tu as bien changé ton code comme tu l'as mis ici.

              Remarque :
              1) le ""+ est inutile dans le print, tu peux directement faire print(product[i][j]) car la méthode print sait afficher des entiers (en fait elle sait afficher tout les objets grâce à la méthode toString de Object...)
              2) de même tu n'es pas obligé de mettre "" dans le println, tu peux faire directement println() et ça fera exactement pareil (mais c'est plus joli)
              3) dans ton cas précis, il vaudrait mieux rajouter un affichage \t pour séparer les colonnes

              4) même si ce n'est pas faux il est plus logique d'écrire int[][] product,car en Java les tableaux sont des classes à part entière contrairement au int product[][] qui fait penser aux pointeurs du C
          3. Modérateur
            Parce que tu as initialisé i à 10, en lui imposant d'être toujours inférieur à rows qui vaut 10, en conséquence il ne rentre jamais dans la boucle !
            Initialises i et j avec 0, ou 1, mais pas 10 !