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. 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 !
    1. 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
    2. 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.
    3. 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 !
    4. 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. 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. 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. 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. bonjour
            tu n'a pas compléter le println dans cette instruction
            System.out.print(product[i][j]);

            merci