Gå till innehåll
Just nu i M3-nätverket

return true/false boollen metod


Machol07

Rekommendera Poster

HejJag vill anropa en metod som returnerar en boolean i en annan klass och beroende om denna är true eller false bestämma utgången med if else i den andra klassen. Vad gör jag för fel får det inte att fungera..

public boolean ärYatzy() {

 

boolean yatzy = true;

 

 

 

 

for (int i = 0; i < tärn.length - 1; i++) {

 

//Kontrollerar om det blev yatzy. Är sant om yatzy är sant OCH index är likamed nästkommande

 

//index i arrayen.

 

yatzy = yatzy && (tärn == tärn[i + 1]);

 

}

 

 

 

 

if (yatzy) {

 

System.out.print("Det blev Yatzy ");

 

print(tärn);

 

}

 

 

 

 

else {

 

 

 

 

System.out.print("Det blev inte Yatzy ");

 

print(tärn);

 

}

 

 

 

 

return yatzy;

 

}

 

 

 

 

 

 

 

 

 

 

 

 

 

Den andra klassen

 

 

 

 

public static void main(String[] args){

 

Yatzy y2 = new Yatzy();

 

 

 

int[] t2 = new int[5];

 

int ggr=0;

 

int antal=0;

 

System.out.print("Kastar täningarna.....");

 

boolean varv = true;

 

 

 

long startTid = System.currentTimeMillis();

 

 

 

 

do{

 

//boolean loop = true;

 

 

 

 

 

 

 

for(int i=0; i < t2.length; i++)

 

{

 

 

 

t2 = 1 + (int) ((6 - 1 + 1) * Math.random());

 

 

 

}

 

 

 

 

 

/*for (int i = 0; i < t2.length - 1; i++) {

 

//Kontrollerar om det blev yatzy. Är sant om yatzy är sant OCH index är likamed nästkommande

 

//index i arrayen.

 

loop = loop && (t2 == t2[i + 1]);

 

 

}

 

if (loop) {

 

 

antal++;

 

} */

 

 

 

y2.ärYatzy();

 

 

 

 

 

 

 

 

ggr++;

 

varv = (ggr == 100000);

 

 

 

//Anropa äryatzy

 

 

 

 

 

 

 

} while(!varv);

 

System.out.print("Klar");

 

System.out.println();

 

long slutTid = System.currentTimeMillis();

 

System.out.println("Det blev yatzy "+antal+" gånger"+" Sökning tog :"+(slutTid - startTid) + " ms");

 

}

 

 

 

}

 

 

 

Länk till kommentar
Dela på andra webbplatser

Det var svårt att läsa ditt inlägg med dubbla, tripla och kvadrupla radavstånd.

Det finns en "kod" tag som du bör/ska använda.

"Inte fungerar" kan betyda vad som helst. Kompileringsfel, länkfel, logiskt fel, krasch?

 

Du bör bara använda a-z, 0-9 i namn på klasser, metoder, variabler etc. Så ärYatzy byts till IsYatzy, lämpligen.

 

Du räknar aldrig upp "antal".

När du anropar ärYatzy så tar du inte hand om returvärdet på något sätt.

Länk till kommentar
Dela på andra webbplatser

Jag ber om ursäkt för det försökte kopiera in koden i kod taggar först men det blev bara massa hexkod.

 

I vilket fall frågan var dåligt formulerad det jag ville veta var det du skrev

Du räknar aldrig upp "antal".

När du anropar ärYatzy så tar du inte hand om returvärdet på något sätt.

 

Jag visste inte hur jag skulle fånga upp returvärdet men gjorde så här

 

antal +=(ärYatzy()?1:0);

 

Vilket tilldelade antal 1 varje gång ärYatzy var true..

Länk till kommentar
Dela på andra webbplatser

Jag visste inte hur jag skulle fånga upp returvärdet men gjorde så här

 

antal +=(ärYatzy()?1:0);

 

Vilket tilldelade antal 1 varje gång ärYatzy var true..

Fungerar det nu, alltså?

 

Ett mer lättläst alternativ är:

if ( ärYatzy() )
   antal++;

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.



×
×
  • Skapa nytt...