Not Impressed Skrevet 9. september 2014 Del Skrevet 9. september 2014 Lager ett program i Textpad hvor man skal legge inn ett nedre og ett øvre tall inn i .showInputDialog. Det regnes ut og alt er fryd og gammen. I oppgaven skal programmet fortsette å be om input hvis man legger inn en nedre grense, eks. 10 og en øvre grense på eks. 2, helt til det er gyldige input og utregning gjøres. Jeg har lagd slik at hvis man skriver feil så får man opp en feilmelding og ett YES_NO vindu hvor man kan velge å legge inn verdier på nytt med å trykke ja. Hvis jeg derimot trykker på nei eller x for å lukke vinduet, popper den samme feilmeldingen som sist opp og YES_NO vinduet kommer igjen. Dette gjøres helt til det legges inn gyldige verdier. Noen som kan hjelpe meg å få skrevet inn at programmet skal slutte når man trykker nei eller x? Dette er deler av programmet: while( a>b || a==b ) { JOptionPane.showMessageDialog(null, "Tallene du har skrevet inn er ikke gyldige!" , "Noe gikk feil", JOptionPane.ERROR_MESSAGE); int knapp = JOptionPane.showOptionDialog( null, "Vil du skrive inn nye grense tall?", "Nye grense tall", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, null); if( knapp == JOptionPane.YES_OPTION ) { tallA = JOptionPane.showInputDialog( "Skriv inn et nedre grense tall: " ); tallB = JOptionPane.showInputDialog( "Skriv inn et øvre grense tall: " ); a = Integer.parseInt( tallA ); b = Integer.parseInt( tallB ); } Lenke til kommentar
kvisvik Skrevet 12. september 2014 Del Skrevet 12. september 2014 (endret) Nå er det mulig at det er bare jeg som ikke ser det, eller det ligger lenger ned i koden din, som ikke er lagt ut her, men har du lagt inn hva som skal skje ved NO_OPTION ? for det at den fungerer ved ja er jo pga av at du har lagt inn if helt nederst der. if( knapp == JOptionPane.YES_OPTION ){ tallA = JOptionPane.showInputDialog( "Skriv inn et nedre grense tall: " ); tallB = JOptionPane.showInputDialog( "Skriv inn et øvre grense tall: " ); a = Integer.parseInt( tallA ); b = Integer.parseInt( tallB ); }else if(knapp == JOptionPane.NO_OPTION){ // ved nei System.exit(0); }else{ //ved kryss System.exit(0); } er ikke 100% på om dette fungerer, men du kan alltids prøve, gi meg gjerne tilbakemld om du har testet dette. Endret 12. september 2014 av kvisvik Lenke til kommentar
Not Impressed Skrevet 3. oktober 2014 Forfatter Del Skrevet 3. oktober 2014 Nå er det mulig at det er bare jeg som ikke ser det, eller det ligger lenger ned i koden din, som ikke er lagt ut her, men har du lagt inn hva som skal skje ved NO_OPTION ? for det at den fungerer ved ja er jo pga av at du har lagt inn if helt nederst der. if( knapp == JOptionPane.YES_OPTION ){ tallA = JOptionPane.showInputDialog( "Skriv inn et nedre grense tall: " ); tallB = JOptionPane.showInputDialog( "Skriv inn et øvre grense tall: " ); a = Integer.parseInt( tallA ); b = Integer.parseInt( tallB ); }else if(knapp == JOptionPane.NO_OPTION){ // ved nei System.exit(0); }else{ //ved kryss System.exit(0); } er ikke 100% på om dette fungerer, men du kan alltids prøve, gi meg gjerne tilbakemld om du har testet dette. Resten av programmet er følgende: "//Lager en teller som setter inn ett linjeskift etter hvert tiende tall int teller = 0; while(a < b) { teller++; if(teller %10 == 0) { svar += a+"\n+ "; } else { svar += a + " + " ; } sum += a; a +=1; } svar = svar + a ; sum = sum + a; a = a + 1; //Skriver ut summen av tallene med linjeskift JOptionPane.showMessageDialog(null, svar + "\nSummen = " + sum, "Summering av Tallrekker", JOptionPane.INFORMATION_MESSAGE);" Dette fungerte Prøvde ikke forslaget ditt så godt mulig det fungerer! Lenke til kommentar
jonny Skrevet 3. oktober 2014 Del Skrevet 3. oktober 2014 Dette er ikke viktig, men kan jo være kjekt å vite: while-løkka di kan skrives mer kompakt, f.eks. slik (jeg har ikke testa det, men): while (a < b) { svar += a + (++teller % 10 == 0 ? "\n" : " ") + "+ "; sum += a++; } 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å