/********************************************** *** Ohjelma laskee lukuja yhteen, kunnes *** *** käyttäjä antaa luvun 0 *** **********************************************/ import java.io.*; class Summaaja { public static void main(String[] args) throws IOException { int summa=0, luku=0; String syote; BufferedReader lukija = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Ohjelma laskee syöttämiesi lukujen summan."); System.out.println("Lukujen syöttö lopetetaan antamalla luvuksi 0"); do { System.out.print("Anna luku :"); syote = lukija.readLine(); luku = Integer.parseInt(syote); summa = summa + luku; } while(luku != 0); System.out.println("Antamasi lukujen summa on " + summa); } }
Math.random()
arpoo satunnaisluvun väliltä 0-1. Desimaaliluku pitää muuttaa välille alaraja … yläraja saadaan laskutoimituksella
(yläraja-alaraja)*Math.random()+alaraja
Mikäli tulos halutaan tallettaa int-tyyppiseen (kokonaisluku) muuttujaan, pitää tulos vielä pyöristää
Math.rint(arvonta)
litanialla ja vielä tehdä tyyppimuunnos. Täten koko litaniaksi tulee
(int)Math.rint((yläraja-alaraja)*Math.random()+alaraja)
Nopalla yläraja on 6 ja alaraja 1, litaniaksi tulee seuraava:
(int)Math.rint((6-1)*Math.random()+1)
eli
(int)Math.rint(5*Math.random()+1)
Välille 50-100 saadaan litanialla
(int)Math.rint(50*Math.random()+1)
Välille 0-100
(int)Math.rint(100*Math.random())
Välille -50…50
(int)Math.rint(100*Math.random()-40)
, koska <m>50-(-50)=100</m>!