Visualizzazione dei risultati da 1 a 3 su 3

Discussione: errore di outofbound

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    53

    errore di outofbound

    salve avrei questo programma

    codice:
    import javax.swing.JOptionPane;
    
    
    public class sommaalternata {
    float []num = new float[5];
    float somma=0;
    float sottrazione=0;
    	public void inserimento(){
    		
    		for (int i =0; i<5;i++){
    		 num[i] = Float.parseFloat(JOptionPane.showInputDialog("inserire un numero"));
    		}
    	}
    	public float[] getarray(){
    	return num;
    	}
    	
    	  public void calcoli(){
    		for (int i=0; i<5; i++){
    			for (int k=0; k<5;i++){
    			sottrazione = num[i] - num[k]; 
    			}
    		}
    			
    	}
    	public float getsottrazione(){
    		return sottrazione;
    	}
    	
    }
    e questo il main

    codice:
    import javax.swing.JOptionPane;
    public class sommalaternatamain {
    
    	public static void main(String[] args) {
    		sommaalternata alter = new sommaalternata();
    		alter.inserimento();
    		alter.calcoli();
    		float sottraz = alter.getsottrazione();
    		System.out.println(sottraz);
    		for (int i=0; i<5;i++){
    		System.out.println(alter.num[i]);
    		}
    
    	}
    
    }
    mi da questo errore

    codice:
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
    	at sommaalternata.calcoli(sommaalternata.java:21)
    	at sommalaternatamain.main(sommalaternatamain.java:7)
    ho provato a vedere solo l'array senza il metodo calcoli e funziona quindi l'errore dovrebbe essere nei cicli ma non riesco a capire proprio cosa sta di sbagliato per fare uscire un outofbound

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Nel metodo "calcoli()", il for più interno è sbagliato... incrementi la variabile "i" e non "k":
    codice:
    for (int k=0; k<5;i++){
       sottrazione = num[i] - num[k]; 
    }

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    53
    Originariamente inviato da LeleFT
    Nel metodo "calcoli()", il for più interno è sbagliato... incrementi la variabile "i" e non "k":
    codice:
    for (int k=0; k<5;i++){
       sottrazione = num[i] - num[k]; 
    }

    Ciao.
    non ci posso credere ho perso piu di un ora per sta cavolata e a dire che lo visto e rivisto piu volte bah
    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.