2017-08-10 2 views
0
public static void main(String[] args){ 
    Random ran = new Random(); 
    int nums[][]; 
    nums = new int[3][5]; 

    for(int i=0;i<3;i++) 
     for(int j=0;j<5;j++){ 
      nums=new int[i][j]; 
      nums[i][j]=1+ran.nextInt(90); 
    } 
} 

Répondre

0
nums=new int[i][j] 

Voici votre créez un tableau avec la longueur i et y Et la ligne suivante nums=new int[i][j] vous essayez l'accès dernier index, mais l'index commencer avec l'index 0 à la longueur -1 Vous devez utiliser nums = new int [i-1] [j-1] pour récupérer le dernier index

0

À la première itération du cycle, vous appelez la ligne: nums = new int[i][j], mais i et j sont 0. Donc, en substance, vous appelez nums = new int[0][0] et ceci est pas une déclaration valide.

Je pense que ce que vous vouliez faire est d'allouer la matrice une fois (en dehors du double cycle comme vous le faites sur la ligne 4) et d'attribuer uniquement des valeurs dans les cycles. Essayez de supprimer la ligne nums = new int[i][j] et voir si c'est ce que vous attendez. Je n'obtiens pas ce que vous essayez de réaliser avec cette déclaration.

+0

Merci de ne pas poster de commentaires 'Merci'. La bonne façon de marquer la solution qui a fonctionné pour vous est d'accepter la réponse. Vous pouvez également convertir toutes les réponses que vous trouvez utiles. Cela aide les futurs lecteurs à résoudre des problèmes similaires. –