Gente, eu fui tentar fazer um dado de 6 lados para mostrar para um amigo meu e fiz o seguinte codigo:
public class Dado6
{
public static void main (String arg[])
{
int x = (int)(Math.random()*6);
System.out.println("Voce tirou " + x);
}
}
mas ai foi quando nós testamos e vimos que o numero 0 estava incluido no dado (deeer)
ai a gente foi tentar excluir o numero 0 do random… eu tentei usar o sinal de " != " q eu vi numa apostila que dizia que era DIFERENTE e tambem tentei usar o " <> " que na mesma apostila dizia que era DIFERENTE tambem… ficou assim
public class Dado6
{
public static void main (String arg[])
{
int x = (int)(Math.random()*6);
int x != 0;
System.out.println("Voce tirou " + x);
}
}
Mas deu errado!! alguem poderia me explicar se tem um jeito facil de resolver issoo? eu acabei fazendo isso por SWITCH vejam só:
public class Dado6
{
public static void main (String arg [])
{
int numero = (int)(Math.random()*5);
switch(numero)
{
case 0:
System.out.println("Voce tirou 1!");
break;
case 1:
System.out.println("Voce tirou 2!");
break;
case 2:
System.out.println("Voce tirou 3!");
break;
case 3:
System.out.println("Voce tirou 4!");
break;
case 4:
System.out.println("Voce tirou 5!");
break;
case 5:
System.out.println("Voce tirou 6!");
break;
}
}
}
Se alguem souber um jeito mais simples de fazer isso ae me digam!
Grato.
OBS: Sou iniciante então eu não vou intender teorias loucas hehe, tentem mostrar o mais simples possivel
AUEhaheaUHAUEH noooossa… pode crer! que marcada! aaa só uma coisa! o random eu faço de o a 5 né? ta 6 ai no codigo… valeu pela dica hehe um dia eu chego la
eu acabei de testar do jeito que disseram para fazer, colocar um +1 na variavel… muito bem primeiramente eu coloquei
System.out.println("Voce tirou: " + x+1 + “!”);
na hora de testar o resultado dava x1, exemplo:
para x=1 o resultado saia 11
para x=0 o resultado saia 01
para x=5 o resultado saia 51
ai eu percebi que ele nao estava somando… achei isso estranho pois o +1 está fora das “” e o texto que aparece só é o que fica dentro das “” nao é? a solução que eu achei foi isolar o x+1 com parenteses desse modo:
System.out.println("Voce tirou: " + (x+1) + “!”);
ai ele funcionou normal do jeito que eu queria… agora vem a duvida! se no primeiro caso nao estava entre “” por que que ele nao somou o 1 a variavel e sim apareceu na frente dela? isso que eu fiz é correto ou foi uma gambiarra?
public class Dado6
{
public static void main (String arg[])
{
int x = 1 + (int)(Math.random()*6); // e so somar 1 aqui rs
System.out.println("Voce tirou " + x);
}
}
AHMMM!! entao quer dier que a soma do numero 1 é na declaração da variavel… pensei que fosse no System.out.println … mas por que que pelo System.out.println não da certo? alguem sabe explicar?
ali dentro dos parenteses do println você vai adicionando os elementos q você quer q seja mostrado na tela, certu? intaum… primeiro você diz: Escreva “Você tirou”
System.out.println("Voce tirou: "
dae você coloca um sinal de adição e coloca o próximo elemento q você quer q seja escrito
System.out.println("Voce tirou: " + x
depois vc faz a mesma coisa com o 1
System.out.println("Voce tirou: " + x+1
então o compilador entede assim: Escreva "Você tirou: ", e escreva x, e escreva 1. Por issu q sai: “Você tirou: 51!”
jah no segundo caso não, como x+1 está entre parenteses o compilador vai analisar isso como um elemento soh, dae vai ser o seguinte…
Escreva "Você tirou: ", e escreva (x+1). Como x+1 não está entra aspas ele vai analisar isso como uma operação, faz o calculo e escreve o resultado… Mas atenção, o valor de x não vai ser alterado, vai ser calculado o q é (x+1) e mostrado, mas a variavel x vai continuar com o mesmo valor.