Frankh0104 Skrevet 28. september 2008 Del Skrevet 28. september 2008 Hei, holder på å lage et mobil arkiv og er nesten ferdig, sliter bare med en siste ting. public void endreAbbonnement(String navn, int nyttNr, String nyType) { boolean funnet = false; for(Abbonement a : abbonement) { String test = a.getNavn(); if(test.equals(navn)) { a.endreNummer(nyttNr); a.endreType(nyType); funnet=true; } else { System.out.println("Finner ikke kunden."); break; } } } Hvis det ligger mer enn et nummer i arkivet så kan jeg ikke endre noen av dem.. Men om jeg bare har ett nummer i arkivet har jeg mulighet til å endre det.. Noen som kan se grunnen ut i fra dette eller trengere dere mer info? Lenke til kommentar
RavnTM Skrevet 28. september 2008 Del Skrevet 28. september 2008 else { System.out.println("Finner ikke kunden."); break; } Hvis 'test' ikke er lik 'navn' første gang, kommer else blokken og avbryter loopen. Lenke til kommentar
pgdx Skrevet 28. september 2008 Del Skrevet 28. september 2008 RavnTM pinpointet det på sitt første innlegg! Prøv å ta ut hele else-blokken fra for-løkken gjør det om til en if som tester på !funnet. I tillegg kan du breake etter du har tatt funnet = true; Lenke til kommentar
Frankh0104 Skrevet 28. september 2008 Forfatter Del Skrevet 28. september 2008 Takker for tips! Nå har jeg gjort noen endringer, og nå kan jeg endre alle jeg legger inn. Men hva skriver jeg da på slutten for å få frem feilmeldingen Ingen kunder med dette navnet om den ikke finner noen? public void endreAbbonnement(String navn, int nyttNr, String nyType) { boolean funnet = false; for(Abbonement a : abbonement) { String test = a.getNavn(); if(test.equals(navn)) { a.endreNummer(nyttNr); a.endreType(nyType); funnet=true; break; } if(test.equals(navn)) { a.endreNummer(nyttNr); a.endreType(nyType); funnet = true; break; } } } Vet ikke om det var slik du mente jeg skulle gjør det pgdx, om dette er feil vil du vise meg ved et eksempel? Hatt java i et par mnd og vet ikke alltid hva folk mener uten ett eksempel Lenke til kommentar
pgdx Skrevet 28. september 2008 Del Skrevet 28. september 2008 public void endreAbbonnement(String navn, int nyttNr, String nyType) { boolean funnet = false; for(Abbonement a : abbonement) { String test = a.getNavn(); if(test.equals(navn)) { a.endreNummer(nyttNr); a.endreType(nyType); funnet=true; break; } } if (!funnet) { System.out.println("Fant ikke " + navn + "!!!"); } } Lenke til kommentar
Frankh0104 Skrevet 28. september 2008 Forfatter Del Skrevet 28. september 2008 aah, det var noe annet ja Takk skal du ha! Lenke til kommentar
Frankh0104 Skrevet 29. september 2008 Forfatter Del Skrevet 29. september 2008 public void endreAbbonnement(String navn, int nyttNr, String nyType) { boolean funnet = false; for(Abbonement a : abbonement) { String test = a.getNavn(); if(test.equals(navn)) { a.endreNummer(nyttNr); a.endreType(nyType); funnet=true; break; } } if (!funnet) { System.out.println("Fant ikke " + navn + "!!!"); } } Når jeg gjor det på denne måten og endret et abbonement kom det: Fant ikke navnet.. Men endringene ble gjort når jeg tok printalle.. Know what to do? Lenke til kommentar
pgdx Skrevet 29. september 2008 Del Skrevet 29. september 2008 That doesn't make sense. Vanskelig å si noe uten å se printAll() og datastrukturen din. Lenke til kommentar
itwiz Skrevet 29. september 2008 Del Skrevet 29. september 2008 (endret) import java.util.ArrayList; public class Arkiv { private ArrayList<Abbonement> abbonement; public Arkiv() { abbonement = new ArrayList<Abbonement>(); } public void nyttAbbonement(String navn, int telefon, String type) { Abbonement ny = new Abbonement(navn, telefon, type); abbonement.add(ny); } public void printAlle() { for(int i=0; i<abbonement.size(); i++) { Abbonement k = abbonement.get(i); k.print(); } } public int antallAbbonement() { return abbonement.size(); } public void endreAbbonnement(String navn, int nyttNr, String nyType) { boolean funnet = false; for(Abbonement a : abbonement) { String test = a.getNavn(); if(test.equals(navn)) { a.endreNummer(nyttNr); a.endreType(nyType); funnet=true; break; } if (!funnet) { System.out.println("Fant ikke " + navn + "!"); } } } public void finnAbbonement(String navn) { boolean funnet = false; int index = 0; while(index<abbonement.size()&&(funnet != true)) { Abbonement a = abbonement.get(index); if(navn.equals(a.getNavn())) { a.print(); funnet = true; } else { System.out.println("Ingen kunder med dette navnet"); break; } } } } Hjalp dette? (Jobber på gruppe med topic starter) Endret 29. september 2008 av itwiz Lenke til kommentar
pgdx Skrevet 29. september 2008 Del Skrevet 29. september 2008 (endret) Tok meg den frihet å indentere klassen, og endre noen småting. Din if (!funnet) hadde på mystisk vis rotet seg inn igjen i for-løkken. Endret ArrayList til List. Gjorde om for (int i ...) -> til foreach. Returnerer ting istedenfor void rundt omkring. Endret noe greier inni finnAbbonement og endre, tror jeg. import java.util.ArrayList; import java.util.List; public class Arkiv { private List<Abbonement> abbonement; public Arkiv() { abbonement = new ArrayList<Abbonement>(); } public void nyttAbbonement(String navn, int telefon, String type) { abbonement.add(new Abbonement(navn, telefon, type)); } public void printAlle() { for (Abbonement a : abbonement) { a.print(); } } public int antallAbbonement() { return abbonement.size(); } public Abbonement endreAbbonnement(String navn, int nyttNr, String nyType) { for (Abbonement a : abbonement) { String test = a.getNavn(); if (test.equals(navn)) { a.endreNummer(nyttNr); a.endreType(nyType); return a; } } System.out.println("Fant ikke " + navn + "!"); return null; } public Abbonement finnAbbonement(String navn) { for (Abbonement a : abbonement) { if (navn.equals(a.getNavn())) { a.print(); return a; } } System.out.println("Ingen kunder med dette navnet"); return null; } } Endret 29. september 2008 av pgdx Lenke til kommentar
itwiz Skrevet 29. september 2008 Del Skrevet 29. september 2008 Tusen takk for svar! Skal lese over endringene å prøve å forstå hva som er gjort Lenke til kommentar
pgdx Skrevet 29. september 2008 Del Skrevet 29. september 2008 Endret litt i innlegget, skrev hva jeg hadde gjort. Lenke til kommentar
itwiz Skrevet 7. oktober 2008 Del Skrevet 7. oktober 2008 Hei, har fått i oppgave å legge til noe i programmet.. Det skal ha mulighet for å legge inn et ubegrenset antall nummer til hvert abb.. Noen tips? Vet ikke helt hvordan jeg skal gå frem.. Lenke til kommentar
pgdx Skrevet 8. oktober 2008 Del Skrevet 8. oktober 2008 List<String> numbers = new ArrayList<String>(); Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå