Jump to content
Just nu i M3-nätverket

return true/false boollen metod


Machol07

Recommended Posts

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");

 

}

 

 

 

}

 

 

 

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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..

Link to comment
Share on other sites

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++;

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...