Um dado de 6 lados

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

Some 1 ao resultado… assim… se der 0… vc vai ter 1… se der 5 vc vai ter 6.
0 à 5!

:wink:

public class Dado6
{
public static void main (String arg[])
{
int x = (int)(Math.random()*6);
System.out.println("Voce tirou " + x+1);
}
}

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

a uma coisa que me deixou bolado… por que nao deu certo o tal do != e do <> ??? alguem poderia me ensinar como que eu uso os filha da mae?

Fala Estevam!!!

a linha

x != 0;

não faz efeito algum… ela poderia fazer efeito num if, por exemplo:

if (x!=0)

mas se vc quisesse jogar o dado até não sair nenhum 0, poderia fazer

int x=0;

while(x!=0){
x = (int)(Math.random()*6);
}

System.out.println("voce tirou " + x);

só que essa não é a solução… hehehehe… o certo é somar 1 a variável x.

Abraços!

valeu pela dica cara!

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?

N precisa d muito codigo n!!

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

Viu como fica bem + simples!!

Espero ter ajudado!

Abracao e te + :razz:

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?

o negócio é o seguinte:

System.out.println("Voce tirou: " + x+1 + “!”);

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.

flw ae :joia:

seu compilador é loiro? ehehheeh
normalmente ele entende 1 como int, entao deveria ter somado… que louco! eheheheh

mas que bom que funcionou!

Na verdade c vc dar uma lida na api da classe java.util vc vai ver q no medoto radom os numeros sao gerados aleatoriamente de 0.0 ate 0.9 :razz:

entao e por isso q vc ter q converter em int e somar o 1:D, blz ??