Gå til innhold

[Løst] Random fungerer ikke


Anbefalte innlegg

Enkelt og greit; metoden skal skrive ut mellom 5-10 linjer og på hver linje skal det være mellom 1-80 random characters. Problemet er at det aldri blir mer enn rundt 30 characters per linje, selv om det er satt til 80?

 

package exercises;
import java.util.*;
public class Exercise05 {
public static void main(String[] args) {
 randomLines();
}

public static void randomLines() {
 Random rand = new Random();
 String chars = "abcdefghijklmnopqrstuvwxyz";
 int lines = rand.nextInt(5) + 5;
 int maxCh = 80;
 for(int i = 1; i <= lines; i++) {
  for(int j = 1; j <= rand.nextInt(maxCh) + 1; j++) {
System.out.print(chars.charAt(rand.nextInt(26)));
  }
  System.out.println();
 }
}
}

Endret av banansplitt™
Lenke til kommentar
Videoannonse
Annonse

Tror den indre loopen ikke fungerer slik du har tenkt.

 

Husk at uttrykket blir sjekket etter hver loop, som betyr at et nytt tall blir generert for hver sjekk.

Så hvis det tallet er lavere enn j, så vil loopen stoppe opp.

Sannsynligheten for å alltid få høye tall er veldig lav.

 

Om du heller oppretter en midlertidig variabel i 1. loop som genererer tallet, så vil det funke.

Noe ala:

 

 

import java.util.*;
public class Exercise05 {

public static void main(String[] args) {
 randomLines();
}
public static void randomLines() {
 Random rand = new Random();
 String chars = "abcdefghijklmnopqrstuvwxyz";
 int lines = rand.nextInt(5) + 5;
 int maxCh = 80;
 for(int i = 1; i <= lines; i++) {
  int randNumb = rand.nextInt(maxCh);
  for(int j = 1; j <= randNumb + 1; j++) {
System.out.print(chars.charAt(rand.nextInt(26)));
  }
  System.out.println();
 }
}

}

 

 

Endret av Fred7555
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...