Permalänk
Medlem

java hjälp...

hej, jag har lite problem met mitt lilla project jag holler på med.
Vatför vill inte Stopwatch.start(); och Stopwatch.stop(); fungera?
eller finns det nårot annat sätt att göra dätta på?

primtal.java

// JBCB // Java Based Cpu Benchmark // by Gustav "gego" Hartvigsson // allowed to copy modifie and distribute, // only that the author gets credit for it (se above) public class primtal { public static void main(String[] args) { Stopwatch.start(); //startar klockan int primnumer = 0; //initsiera primnumer, som talar om vilket nuber primtalet har for(int i=1; primnumer <= 10000; i++ ){ //initsierar i ; ser till att primnumer är mindre eller likamed 10 000 boolean prim = true; //initsiera bolianen prim, som talar om det är ett primtal eller ej for(int j=2; j<i ; j++){ // initsierar j ; ser till att j är mindre än i ; lägg till 1 till j if(i%j==0){ //frågar ifall i/j inte har någon rest prim = false; // ifall i/j inte har någon rest gör prim till falsk } } if(prim){ primnumer++;// lägger till 1 till primnumnuer System.out.println(primnumer + " : " + i ); // skriver ut prim numer och primtalet } if(primnumer==10000){ // ser ifall primnumer är mindre än 10 000 System.out.println("det var 10 000 primtal det!! :-D"); Stopwatch.stop(); // stoppar klockan System.out.println("elapsed time in milliseconds: " + s.getElapsedTime()); //skrivar ut tiden det tog } // } } }

Stopwatch.java

/** * Author unknown, but I think this is from a book * named "Java Platform Performance". * http://www.devdaily.com/blog/Content/2/8/295/ */ public class Stopwatch { private long startTime = -1; private long stopTime = -1; private boolean running = false; public Stopwatch start() { startTime = System.currentTimeMillis(); running = true; return this; } public Stopwatch stop() { stopTime = System.currentTimeMillis(); running = false; return this; } public long getElapsedTime() { if (startTime == -1) { return 0; } if (running) { return System.currentTimeMillis() - startTime; } else { return stopTime - startTime; } } public Stopwatch reset() { startTime = -1; stopTime = -1; running = false; return this; } /* public static void main(String[] args) { Stopwatch s = new Stopwatch(); s.start(); // your code runs here s.stop(); System.err.println("elapsed time: " + s.getElapsedTime()); */ } }

Visa signatur

@gegoxaren på identi.ca
min personliga Blag ^_^
#python #cSharp #php #sqlite #freetard #loonix

Permalänk
Medlem

Du måste skapa en instans av StopWatch innan du kan använda den.

Permalänk
Medlem

hur menar du?

jag har ju filen Stopwatch.java om du inte märkt det...

Visa signatur

@gegoxaren på identi.ca
min personliga Blag ^_^
#python #cSharp #php #sqlite #freetard #loonix

Permalänk
Medlem

Du kan inte anropa metoderna start() och stop() direkt på klassen (eftersom dessa metoder i Stopwatch inte är static). Skapa ett objekt först av Stopwatch: Stopwatch watch = new Stopwatch();

Därefter kan du anropa metoderna med watch.start(). Sen tycker jag du bör flytta din sista if-sats if(primnumer==10000) utanför for-loopen. Då behöver du inte ens ha någon if-sats utan kan direkt stoppa klockan och skriva ut tiden.

Permalänk
Medlem

humm.... va?
jag är inte direkt en språklig meniska..... jag är mer "bildlig"... så det du skrev förstod jag inte...

kopiera koden och ändra det spn skall ändras, sedan posta det, anars kommer inte jag att förså...

Visa signatur

@gegoxaren på identi.ca
min personliga Blag ^_^
#python #cSharp #php #sqlite #freetard #loonix

Permalänk
Citat:

Ursprungligen inskrivet av Gego
humm.... va?
jag är inte direkt en språklig meniska..... jag är mer "bildlig"... så det du skrev förstod jag inte...

kopiera koden och ändra det spn skall ändras, sedan posta det, anars kommer inte jag att förså...

Okej, det här är en fråga om en grundläggande regel för hur språket i sig fungerar. För att kunna använda metoder från en klass som inte är static så måste du först skapa en instans av det, dvs. använda dig av operatorn new på följande sätt.

Stopwatch sw = new Stopwatch();

Nu har ett objekt av typen Stopwatch och du kan nu använda dig av dess metoder genom att anropa dem på följande sätt:

//Starta klockan.
sw.start();

//Stoppa klockan.
sw.stop();

Förstår du nu?

Visa signatur

2xHP w2207, Intel C2D E6750, Gigabyte P35-DS3, Corsair Twin2X2048-6400C4, XFX Geforce 8800GTS, 400GB HDD[br]
Athlon 64 3200+ "Winchester", ASUS A8N-SLI deluxe, Corsair TWINX1024-3200XL, XFX Geforce 6800GT@ULTRA, 160GB HDD

Permalänk
Medlem

ja nu förstår jag...

det fungerar... tack!

Visa signatur

@gegoxaren på identi.ca
min personliga Blag ^_^
#python #cSharp #php #sqlite #freetard #loonix