Juji Skrevet 24. september 2009 Del Skrevet 24. september 2009 Heisann, jeg sitter her å holder på med et program som spør etter fornavn også etternavn og tilslutt et tall mellom 1 og 6(for diverse modifikasjoner av navnene). Det jeg ikke får til er at programmet skal sjekke om tallet er mindre enn 1 eller større enn 6, da ønsker jeg at det skal begynne forfra igjen, eller på ny om du vil. public static void main(String[] args) { String fnavn, enavn, sum; Scanner scan = new Scanner (System.in); System.out.println ("Skriv inn fornavnet ditt: "); fnavn = scan.nextLine (); System.out.println ("Skriv inn etternavnet ditt: "); enavn = scan.nextLine (); System.out.println ("Tast inn et av følgende tall: "); System.out.println ("1: Skriver ut navnet"); System.out.println ("2: Bytter rekkefølge på fornavn og etternavn"); System.out.println ("3: Skriver navnet med store bokstaver"); System.out.println ("4: Skriver navnet med små bokstaver"); System.out.println ("5: Skriver initialene"); System.out.println ("6: Skriver ut bare fornavnet"); int tall = scan.nextInt (); * if (tall !=1 && tall<1 || tall !=6 && tall>6) System.out.println ("Prøv igjen!"); if (tall == 1) System.out.println (fnavn + " " +enavn); else if (tall == 2) System.out.println (enavn + " "+ fnavn); else if (tall == 3) System.out.println (fnavn.toUpperCase() +" "+ enavn.toUpperCase()); else if (tall == 4) System.out.println (fnavn.toLowerCase()+" "+ enavn.toLowerCase()); else if (tall == 5) System.out.println (fnavn.charAt(0)+""+ enavn.charAt(0)); else if (tall == 6) System.out.println (fnavn); else; * } } Skal på en måte få java til å prøve på nytt igjen, liksom si "Feil" også be om å inntaste tall fra 1 til 6 på nytt igjen. Må jeg sette inn en while loop her etsted kanskje? Takker på forhånd for all hjelp. Lenke til kommentar
Joachricar Skrevet 24. september 2009 Del Skrevet 24. september 2009 (endret) do { spør om tall; lagre tall; if (tall < 1 || tall > 6) { skriv ut feil; } } while (tall < 1 || tall > 6); Endret 24. september 2009 av Joachricar Lenke til kommentar
Juji Skrevet 24. september 2009 Forfatter Del Skrevet 24. september 2009 (endret) Heisann, prøvde å legge inn en do, satt den inn før jeg printer ut hva 1-6 gjør, men den sier at jeg må lage en while metode nederst, prøver på dette, men får syntax feil. public static void main(String[] args) { String fnavn, enavn, sum; Scanner scan = new Scanner (System.in); System.out.println ("Skriv inn fornavnet ditt: "); fnavn = scan.nextLine (); System.out.println ("Skriv inn etternavnet ditt: "); enavn = scan.nextLine (); int tall; tall = 1; do { System.out.println ("Tast inn et av følgende tall: "); System.out.println ("1: Skriver ut navnet"); System.out.println ("2: Bytter rekkefølge på fornavn og etternavn"); System.out.println ("3: Skriver navnet med store bokstaver"); System.out.println ("4: Skriver navnet med små bokstaver"); System.out.println ("5: Skriver initialene"); System.out.println ("6: Skriver ut bare fornavnet"); int tall1 = scan.nextInt (); if (tall1 !=1 && tall1<1 || tall1 !=6 && tall1>6) System.out.println ("Prøv igjen!"); if (tall1 == 1) System.out.println (fnavn + " " +enavn); else if (tall1 == 2) System.out.println (enavn + " "+ fnavn); else if (tall1 == 3) System.out.println (fnavn.toUpperCase() +" "+ enavn.toUpperCase()); else if (tall1 == 4) System.out.println (fnavn.toLowerCase()+" "+ enavn.toLowerCase()); else if (tall1 == 5) System.out.println (fnavn.charAt(0)+""+ enavn.charAt(0)); else if (tall1 == 6) System.out.println (fnavn); else; * }while (tall <=1 || tall >=6); System.out.println ("Det fungerer"); } } Åja, når jeg satt do over hva 1-6 gjør så får jeg det opp hver gang, uavhengig om tallet som blir tastet inn er 1 eller 90, noen ideer hvordan man fikser dette? Jeg får feil på (*) hvis jeg ikke gir tall en verdi i begynnelsen, ga den en verdi for å se hvordan programmet kjørte. Takk for hjelpen så langt Endret 24. september 2009 av evilowns Lenke til kommentar
TeisL Skrevet 24. september 2009 Del Skrevet 24. september 2009 public static void main(String[] args) { // TODO Auto-generated method stub String fname, enavn, sum; Scanner scan = new Scanner(System.in); Boolean a = true; while(a) { System.out.println("Skriv inn fornavnet ditt: "); fname = scan.nextLine(); System.out.println("Skriv inn etternavnet ditt: "); enavn = scan.nextLine(); System.out.println("Tast inn et av følkgende tall:\n" + "1: Skriver ut navnet.\n" + "2: Bytter rekkefølgen på navnene\n" + "3: Skriver navnet i store bokstaver\n" + "4: Skriver navnet med små bokstaver\n" + "5: Skiver initialene\n" + "6: Skriver ut bare fornavnet."); int tall = scan.nextint(); if(tall < 1 || tall > 6) a = true; else { switch(tall){ case 1: System.out.println(fname + " " + enavn); break; case 2: System.out.println(enavn + " " + fname); break; case 3: System.out.println (fname.toUpperCase() +" "+ enavn.toUpperCase()); break; case 4: System.out.println (fname.toLowerCase()+" "+ enavn.toLowerCase()); break; case 5: System.out.println(fname.charAt(0) + enavn.charAt(0)); break; case 6: System.out.println(fname); break; } a = false; }//End else }//End while }//End main Her har du den som gjør det du forklarte. Lenke til kommentar
Juji Skrevet 28. september 2009 Forfatter Del Skrevet 28. september 2009 Hei igjen, fikk til den ene loopen men nå sliter jeg med en ting til. Skal få programmet til å gå opp til toppen (enter name), for å kunne ha muligheten til å skrive inn xx for å avslutte, men jeg får det ikke til, programmet går opp og sier tallene på nytt bare.noen ideer om hvordan jeg skal få det til? public static void main(String[] args) { String name; Scanner scan = new Scanner (System.in); boolean a = true; boolean b = true; while (a){ String [] splittet; *** System.out.println ("Skriv inn navnet ditt: "); name = scan.nextLine(); if (name.contentEquals("xx") || name.contentEquals("XX")){ System.out.println ("Avslutter..."); break;} ***** splittet = name.split(" "); while (b){ System.out.println ("Tast inn et av følgende tall: "); System.out.println ("1: Skriver ut navnet"); System.out.println ("2: Bytter rekkefølge på fornavn og etternavn"); System.out.println ("3: Skriver navnet med store bokstaver"); System.out.println ("4: Skriver navnet med små bokstaver"); System.out.println ("5: Skriver initialene"); System.out.println ("6: Skriver ut bare fornavnet"); int tall = scan.nextInt (); if (tall <1 || tall >6){System.out.println ("Feil tall, prøv igjen!"); continue;} if (tall == 1) System.out.println (name); else if (tall == 2) System.out.println (splittet [1] +" "+splittet [0]); else if (tall == 3) System.out.println (name.toUpperCase()); else if (tall == 4) System.out.println (name.toLowerCase()); else if (tall == 5) System.out.println (splittet [0].charAt(0) +""+ splittet[1].charAt(0)); else if (tall == 6) System.out.println (splittet [0]); } } } } Skal ha der det står masse stjerner til å komme opp hvis jeg taster inn et tall som ikke er mellom 1 og 6. Resten av programmet fungerer som planlagt, men jeg mangler denne siste biten. Takk for all hjelp så langt Lenke til kommentar
Joachricar Skrevet 28. september 2009 Del Skrevet 28. september 2009 (endret) Slik jeg ser det(har ikke studert koden) så kjører while(b) hele veien. Da har du to alternativer: Ha alt i samme whileløkke, eller ha muligheten for å skrive inn xx i andre whileløkken for å kunne avslutte der Siste virker jo da greiest i og med at man slipper å skrive inn navnet hver gang man skal gjøre noe nytt. Endret 28. september 2009 av Joachricar Lenke til kommentar
Juji Skrevet 30. september 2009 Forfatter Del Skrevet 30. september 2009 Der fungerer programmet som det skal, takk for all hjelp Joachricar og TeisL. 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å