2013-01-06, 15:32
#1
Hej! Vi har som ni ser nedan gjort en lottorad. Som skrivs ut och sorteras. Denna fungerar (ska dock nämna att jag kanske inte vart drivande) . Det jag nu har en fråga om är inte på hela alltet utan snarare en specifik. Uppgiften går ut på att: Göra ett program som slumpar ut 7 tal av 35 möjliga, genom användandet av en vektor. Sekundärt är sedan att dessa ska sorteras
Frågan: I for loopen ligger en while loop. I boolean vektorer är ju alla siffror falska. While loopen är ju även den till för att kontrollera att ett tal inte upprepar sig själv. Men vart säger egentligen whileloopen det?
Som jag ser det så blir ett tal true, direkt i forloopen och därav önskar den gå in i whileloopen direkt iaf?
Jag förstår att skolfrågor inte är det som önskas här och förstår även avsaknad av svar därmed!Men är det någon vänlig skäl som önskar förklara sambandet och logiken bakom denna for/while loop i syftet att se till att talen blir unika så är jag dig mer än tacksam!
import java.util.*;
public class Lotto {
public static void main(String[] args){
Lotto l=new Lotto();
System.out.println(l.getLottorad());
}
private String getLottorad() {
//Skapar Vektor! Deklaration av variabler: index och tal, rad och r.
boolean Vektor[]=new boolean[35];
int i,tal;
String rad="";
Random r=new Random();
//Räknar upp till 7 slumpmassiga tal.
for (i=0;i<7;i++){
tal=r.nextInt(Vektor.length);
//Kollar om talet redan "har varit".
while(Vektor[tal]==true){
tal=r.nextInt(Vektor.length);
}
//Skriver ut en rad med tal + 1 eftersom man inte kan få noll i lotto.
Vektor[tal]=true;
rad=rad+" "+(tal+1);
}
System.out.println(rad);
rad="";
//Sorterar raden!
for(i=0;i<Vektor.length;i++){
if(Vektor[i]==true)
rad=rad+" "+(i+1);
}
//Skriver ut rad.
System.out.println(rad);
return "Programmet är klart." ;
}
}
Det handlar alltså om att förstå på vilket sätt whileloopen i detta fall fungerar och säkrar att det inte blir upprepning!
Tacksam för all hjälp jag kan få!
Frågan: I for loopen ligger en while loop. I boolean vektorer är ju alla siffror falska. While loopen är ju även den till för att kontrollera att ett tal inte upprepar sig själv. Men vart säger egentligen whileloopen det?
Som jag ser det så blir ett tal true, direkt i forloopen och därav önskar den gå in i whileloopen direkt iaf?
Jag förstår att skolfrågor inte är det som önskas här och förstår även avsaknad av svar därmed!Men är det någon vänlig skäl som önskar förklara sambandet och logiken bakom denna for/while loop i syftet att se till att talen blir unika så är jag dig mer än tacksam!
import java.util.*;
public class Lotto {
public static void main(String[] args){
Lotto l=new Lotto();
System.out.println(l.getLottorad());
}
private String getLottorad() {
//Skapar Vektor! Deklaration av variabler: index och tal, rad och r.
boolean Vektor[]=new boolean[35];
int i,tal;
String rad="";
Random r=new Random();
//Räknar upp till 7 slumpmassiga tal.
for (i=0;i<7;i++){
tal=r.nextInt(Vektor.length);
//Kollar om talet redan "har varit".
while(Vektor[tal]==true){
tal=r.nextInt(Vektor.length);
}
//Skriver ut en rad med tal + 1 eftersom man inte kan få noll i lotto.
Vektor[tal]=true;
rad=rad+" "+(tal+1);
}
System.out.println(rad);
rad="";
//Sorterar raden!
for(i=0;i<Vektor.length;i++){
if(Vektor[i]==true)
rad=rad+" "+(i+1);
}
//Skriver ut rad.
System.out.println(rad);
return "Programmet är klart." ;
}
}
Det handlar alltså om att förstå på vilket sätt whileloopen i detta fall fungerar och säkrar att det inte blir upprepning!
Tacksam för all hjälp jag kan få!