Br0dskive Skrevet 16. september 2013 Del Skrevet 16. september 2013 Hvordan kan jeg bruke switch til å sende til ulike metoder?feks hvis jeg har skrevet:class test { public static void main(String [] args) { Scanner tast = new Scanner(System.in); System.out.println("velg 1-4"); System.out.println("1: Registrering"); System.out.println("2: Skriv ut bookinger"); System.out.println("3: Skriv ut gjesteinfo"); System.out.println("4: Avslutt systemet"); int a = tast.nextInt(); switch (a) { case 1: ; break; case 2: ; break; case 3: ; break; case 4: break; default: System.out.println("Prøv igjen, 1-4"); } }} Hvor de videre metodene heter registrering, bookinger, gjesteinfo.Hva kan jeg skrive i de ulike "casene" for å sende til de ulike metodene utifra hva brukeren velger?Java er veldig nytt for meg så dette er bare noe jeg prøver for morro skyld. Lenke til kommentar
Hårek Skrevet 16. september 2013 Del Skrevet 16. september 2013 Det er bare å kalle metoden. case 1: registrering(); break; Lenke til kommentar
Br0dskive Skrevet 16. september 2013 Forfatter Del Skrevet 16. september 2013 Hahaha åja! Det var ikke værre nei... Flott! takk! Lenke til kommentar
Br0dskive Skrevet 16. september 2013 Forfatter Del Skrevet 16. september 2013 Men nå lurer jeg på en ting til..Dette er det jeg har skrevet: import java.util.*;class test { public static void main(String [] args) { Meny m = new Meny(); m.valg(); }}class Meny { void valg() { Scanner tast = new Scanner(System.in); int a = 0; while (a < 4) { System.out.println("velg 1-4"); System.out.println("1: Registrering"); System.out.println("2: Skriv ut bookinger"); System.out.println("3: Skriv ut gjesteinfo"); System.out.println("4: Avslutt systemet"); a = tast.nextInt(); switch (a) { case 1: registrering(); break; case 2: System.out.println(); break; case 3: System.out.println(); break; case 4: System.out.println(); break; default: System.out.println("Prøv igjen, 1-4"); } } }}class registrering { void registrering() { System.out.println("YEY"); }} Det funker ikke som jeg vil.. Det jeg vil at den skal gjøre er å be meg velge 1-4 og når jeg da velger 1 som er "registrering", skal den skrive ut "YEY"... Aner egentlig ikke hvordan jeg skal få det til. Har sett litt her og der og googlet litt osv, men blir ikke klokere.. Noen som kan hjelpe? Lenke til kommentar
Hårek Skrevet 16. september 2013 Del Skrevet 16. september 2013 Undersøk hva "a" er satt til før du går inn i switch. Enten har du en debugger tilgjengelig, eller så bruker du System.out.println(); System.out.println("a = " + a); (Jeg har ikke her og nå en klar formening om hva Scanner egentlig returnerer.) Lenke til kommentar
Sutekh Skrevet 16. september 2013 Del Skrevet 16. september 2013 (endret) Enten så må du gjøre "registrering" til en lokal metode i "Meny", eller så må du instansiere "registrering"-klassen og kalle "registrering()" i det objektet. Altså: case 1: registrering minRegistrering = new registrering(); minRegistrering.registrering(); break; Men hvis jeg kan få lov til å dele noen generelle clean-code-tips: metodenavn bør gjerne være verb, mens klassenavn bør være substantiv. Så en klasse kan være "register" eller "registrering" (litt avhengig av hva klassen egentlig skal representere - en "registrering" vil typisk være en klasse som bare instansieres mens du utfører handlingen det er å registrere en oppføring og så forkastes etterpå, mens hvis klassen representerer informasjon som skal lagres i et register, så bør den kanskje hete "oppføring" eller noe tilsvarende), mens metoden bør hete "registrer". Endret 16. september 2013 av Sutekh 1 Lenke til kommentar
Br0dskive Skrevet 17. september 2013 Forfatter Del Skrevet 17. september 2013 Takk for svar! Endte med å gjøre "register" til en lokal metode i meny. 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å