|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 654
|
[JAVA] domanda su un random e domanda su un metodo
ciao ragazzi! 2 domande...
1) come faccio a far pescare a random un numero da 0 a 4 (compresi)? perchè io conosco solo il comando (int)(Math.random()) ma posso darci solo multipli di 10 come vincoli. 2) ho un metodo così: Codice:
public boolean possoPuntare(int id){
switch(id){
case 0: if(puntataG0==1){possoG0= false; return possoG0;} else
{possoG0=true; return possoG0;}
case 1: if(puntataG1==1){possoG1= false; return possoG1;} else
{possoG1=true; return possoG1;}
case 2: if(puntataG2==1){possoG2= false; return possoG2;} else
{possoG2=true; return possoG2;}
}
}
ho sempre fatto così e ha sempre funzionat, ma sta volta mi dà errore: missing return statement...... non sò perchè grazie a tutti
__________________
Macbook Pro 15'' Mid 2015 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
così non ti piace?
Codice:
(int)(Math.random()*5)
__________________
My gaming placement |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 654
|
Quote:
per il secondo, non mi serve nessun default. me lo invento io?
__________________
Macbook Pro 15'' Mid 2015 |
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
P.S.: sinceramente non ho provato...sto andando "a naso"...
__________________
My gaming placement |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 654
|
ah ecco. beh allora aspetto qualcuno che mi dia una risposta sicura.
anche perchè mettere il 5 sembra che non aiuti, sicchè la base di un random dovrebbe essere un numero compreso tra 0 e 1
__________________
Macbook Pro 15'' Mid 2015 |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
sul random sono sicuro....sul default no...
__________________
My gaming placement |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 654
|
__________________
Macbook Pro 15'' Mid 2015 |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
|
Il metodo random() della classe Math ritorna un double compreso tra 0 e 1 il che significa che potrebbe essere qualcosa come 0.1558962 o 0.9986533 o ancora 0.5778 ecc ecc. E' solo il successivo cast a int che ti fa ottenere o 0 o 1. Quindi se esegui questo codice:
Codice:
(int)(Math.random() * 5) Per quanto riguarda quel metodo devi appunto aggiungere il caso di default che ti devi inventare tu. Oppure puoi fare cosi: Codice:
public boolean possoPuntare(int id) {
boolean result = false;
switch (id) {
case 0:
if (puntataG0 == 1) {
possoG0 = false;
result = possoG0;
break;
} else {
possoG0 = true;
result = possoG0;
break;
}
case 1:
if (puntataG1 == 1) {
possoG1 = false;
result = possoG1;
break;
} else {
possoG1 = true;
result = possoG1;
break;
}
case 2:
if (puntataG2 == 1) {
possoG2 = false;
result = possoG2;
break;
} else {
possoG2 = true;
result = possoG2;
break;
}
}
return result;
}
Questo serve perchè giustamente senza il caso di default non è detto che lo switch ti ritorni qualcosa. Ad esempio se id fosse 3 quello switch non tornerebbe nulla Spero di aver chiarito i tuoi dubbi Saluti
__________________
iMac 27" 5K |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 654
|
ma id ha risultati precisi, su quello non c'è problema.
cmq thanks :-)
__________________
Macbook Pro 15'' Mid 2015 |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
|
si ma il compilatore mica lo sa che id sarà effettivamente 0, 1 o 2
per quello ti richiede anche il default Ciauz
__________________
iMac 27" 5K |
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 654
|
Quote:
l'ho programmato io, lo sò cosa ho scritto
__________________
Macbook Pro 15'' Mid 2015 |
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 654
|
tanto che sono qua vi chiedo una cosa:
se io ho 3 variabili int normalissime.... e voglio che quando una delle tre è =3 allora devo eseguire un istruzione, come faccio? ho provato con l'or in un if, ma non mi sembra che funzioni
__________________
Macbook Pro 15'' Mid 2015 |
|
|
|
|
|
#13 |
|
Member
Iscritto dal: Nov 2007
Messaggi: 122
|
Codice:
If (varabile1 == 3) || (variabile2 == 3) || (variabile3 == 3){
....quello che devi fare
}
|
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
|
Quote:
Io parlo del compilatore Saluti
__________________
iMac 27" 5K |
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 654
|
id è un int che è 0,1,2 a seconda dei casi (ogni thread che creo ha un id, e sono 3 thread). quindi qualunque valore assuma dei 3, nel case li gestisco. capisci?
grazie per la parte dell'or, mettevo una sola stanghetta eheheh
__________________
Macbook Pro 15'' Mid 2015 |
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 654
|
Quote:
illegal start of expression, not a statment, ;
__________________
Macbook Pro 15'' Mid 2015 |
|
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
|
Codice:
If ((varabile1 == 3) || (variabile2 == 3) || (variabile3 == 3)){
....quello che devi fare
}
__________________
iMac 27" 5K |
|
|
|
|
|
#18 | |
|
Senior Member
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
|
Quote:
__________________
iMac 27" 5K |
|
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 654
|
ah tu dici che se anche io lo imposto di modo che fà solo 0 1 o 2, devo programmare sempre con quella condizione, per essere sicuro!
grazie per la dritta :-)
__________________
Macbook Pro 15'' Mid 2015 |
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 654
|
si ma sarò scemo io, o scema sta jvm.
se io faccio uno switch del tipo: Codice:
switch(abc){
case 1: blablabla; break;
case 2: blablabla; break;
case 3: blablabla; break;
default: no; break;
}
com'è che nell'output (facendo girare il programma un pò) mi vedo apparire ogni tanto "no"
__________________
Macbook Pro 15'' Mid 2015 |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:37.




















