Meddelande

Minska
No announcement yet.

Nybörjare med java

Minska
X
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Nybörjare med java

    Hej jag försöker skriva ett program där man skall fylla i ett antal provresultat.
    Först skall man välja hur många prov man skall rätta och sen skriva in resultat för varje prov men jag fastnar på ett ställe när jag gör arrayer. Programmet funkar bra om jag väljer ett bestämt antal prov som skall rättas. Men när jag använder mig av variabeln antalprov för hur många arrayer som skall skapas och prov som skall rättas då funkar det inte.

    Så här ser koden ut.

    [kod]

    public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);
    int antalProv;
    System.out.println("Hur många prov skall du rätta?");
    antalProv = sc.nextInt();

    int[] prov;
    prov = new int[antalProv];

    for (int i = 1; i <= antalProv; i++) {
    System.out.println("Mata in resultat " + i);
    prov[i] = sc.nextInt();
    }


    }

    [/kod]

    Då får jag detta meddelande.

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
    at betyg.Betyg.main(Betyg.java:34)
    Java Result: 1
    Last edited by andenwee; 2014-08-09, 14:00.

  • #2
    Sista körningen av for-loopen kommer att misslyckas eftersom en arrays index börjar på 0, inte 1. prov[antalProv] existerar alltså inte.

    Testa att ändra till detta så tror jag att det går bättre
    Kod:
    for (int i = 0; i < antalProv; i++) {
       System.out.println("Mata in resultat " + (i+1));
       prov[i] = sc.nextInt();
    }
    "Det finns tre sorters lögn; vanlig lögn, förbannand lögn och statistik" - Mark Twain

    Kommentera

    Working...
    X