Gå til innhold

Anbefalte innlegg

Ehh. Sliter med en liten oppgave her. Når jeg skal skrive ut for eksempel grunnLonn får jeg beskjed om at den ikke er knyttet til noen variabel. Hjelp`?

import java.util.*;
public class Lek {
public static void main(String [] args) {
 Scanner tast = new Scanner(System.in);
 String navn;
 int timelonn = 0;
 double timer[] = new double[5];
 double grunnLonn[] = new double[5];
 double overtid[] = new double[5];
 double total[] = new double[5];
 double totalPrint[]= new double[5];
 System.out.println("Ansattes navn: ");
 navn=tast.nextLine();

 System.out.println("Timelønn: ");
 timelonn=tast.nextInt();

 for(int i=1; i<=4; i++) {
  System.out.println("Hvor lenge jobbet du i uke " + i);
  timer[i]=tast.nextDouble();

  if (timer[i] > 40) {
grunnLonn[i]= (timelonn * timer[i]);
overtid[i]= (timelonn * 0.5) * (timer[i]-40);
total[i]= (grunnLonn[i] + overtid[i]);
  }else{
grunnLonn[i]= (timelonn * timer[i]);
  }
  System.out.println("\t\tLønnsslipp  for" + "\t" + navn + "\t" );
  System.out.println(grunnLonn[i]);
 }
 System.out.println(grunnLonn[i]); //!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!! her vil den ikke skrive ut i, og i regner heller ikke sammen totalen

}

}

Lenke til kommentar
Videoannonse
Annonse

Gjorde litt om på koden, og slik den er nå fungerer den iallefall...

import java.util.*;
public class ObligB {
public static void main(String [] args) {
 Scanner tast = new Scanner(System.in);
 String navn;
 int timelonn = 0;
 double timer[] = new double[5];
 double grunnLonn[] = new double[5];
 double sum[]= new double[5];
 double overtid[] = new double[5];
 double total[] = new double[5];
 int i=1;
 System.out.println("Ansattes navn: ");
 navn=tast.nextLine();

 System.out.println("Timelønn: ");
 timelonn=tast.nextInt();

 while (i <=4) {
  System.out.println("Hvor lenge jobbet du i uke " + i);
  timer[i]=tast.nextDouble();

  if (timer[i] > 40) {
   grunnLonn[i]= (timelonn * timer[i]);
   overtid[i]= (timelonn * 0.5) * (timer[i]-40);
   total[i]= (grunnLonn[i] + overtid[i]);
  }else{
   total[i]= (timelonn * timer[i]);
   grunnLonn[i]= (timelonn * timer[i]);
   //overtid[i]= String.substring ("Ingen overtid");
  }
  System.out.println("\t\tLønnsslipp  for" + "\t" + navn);
  System.out.println();
  System.out.println("Timer" + "\t\tLønn" + "\t\tGrunnlønn" + "\tOvertid" + "\t\tTotal");
  System.out.println(timer[i] + "\t\t" + timelonn + "\t\t" + grunnLonn[i] + "\t\t" + overtid[i] + "\t\t" + total[i]);
  i++;
 }
 for(int telle=0; telle<grunnLonn.length; telle++) {
  sum[1]+=grunnLonn[telle];

 }
 for(int telle=0; telle<overtid.length; telle++) {
  sum[2]+=overtid[telle];

 }
 for(int telle=0; telle<total.length; telle++) {
  sum[3]+=total[telle];

 }
 for(int telle=0; telle<timer.length; telle++) {
  sum[0]+=timer[telle];

 }
 System.out.println();
 System.out.println("\t\tTotal lønnsslipp  for" + "\t" + navn);
 System.out.println();
 System.out.println("Timer" + "\t\tLønn" + "\t\tGrunnlønn" + "\tOvertid" + "\t\tTotal");
 System.out.println(sum[0] + "\t\t" + timelonn + "\t\t" + sum[1] + "\t\t" + sum[2] + "\t\t" + sum[3]);
}

}

 

Endringer jeg kan gjøre? Har lyst å loope den siste infoen slik at timer, grunnlønn osv blir plusset på seg selv slik at jeg kan lage en total lønnsslipp.

Lenke til kommentar

Hvis lengden på tabellene grunnLonn, timer osv. alltid er fem så ser jeg ikke noen grunn til at du skal foreta summeringa i fire separate for-løkker, da får du jo fire ganger så mye iterasjoner som du egentlig behøver.

 

Slå alt inn i en felles for-løkke istedet.

Lenke til kommentar

Hvis lengden på tabellene grunnLonn, timer osv. alltid er fem så ser jeg ikke noen grunn til at du skal foreta summeringa i fire separate for-løkker, da får du jo fire ganger så mye iterasjoner som du egentlig behøver.

 

Slå alt inn i en felles for-løkke istedet.

Er litt treig til å tenke nå, men skjønner hva du mener. Har ikke lest så mye om for-løkker så er ikke sikker på hvordan jeg skal starte...

Lenke til kommentar

En basic for-løkke er bygd opp slik:

for(1;2;3){
 4
}

 

Hvor:

1 er startbetingelsen, 2 er betingelsen for hvor langt for-løkka skal gå, 3 er i++ eller noe som får løkka til å bevege seg mot betingelsen i punkt 2, og 4 består av koden du vil at løkka skal utføre for hver gjennomgang.

 

1: Deklarer og initier ett heltall til 0, alle tabeller starter med indeksverdi på 0.

2: Sett at for-løkka skal gå ut lengda til hvilken som helst av grunnLonn, overtid, total eller telle. Alle har samme lengde så det spiller ingen rolle hvilken.

3: Legg til heltallet fra punkt 1.

4: Sett inn summeringa fra de fire for-løkkene her.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...