Ajuda com 2 códigos e dúvidas

Galera é o seguinte olhem esses 2 códigos…

public class PhraseOMatic {
public static void main (String[] args) {

String[] wordListOne = {“24/7”, “várias camadas”, “30.000 pés”, “B-to-B”, “todos ganham”, “front-end”, “baseado na Web”, “difundido”, “inteligente”, “seis sigma”, “caminho crítico”, “dinâmico”};
String[] wordListTwo = {“habilitado”, “adesivo”, “valor agregado”, “orientado”, “central”, “distribuído”, “agrupado”, “solidificado”, “independente da máquina”, “posicionado”, “em rede”, “dedicado”, “alavancado”, “alinhado”, “destinado”, “compartilhado”, “cooperativo”, “acelerado”};
String[] wordListTree = {“processo”, “ponto máximo”, “solução”, “arquitetura”, “habilitação no núcleo”, “estratégia”, “mindshare”, “portal”, “espaço”, “visão”, “paradigma”, “missão”};

int oneLength = wordListOne.length;
int twoLength = wordListTwo.length;
int threeLength = wordListThree.length;

int rand1 = (int) (Math.random() * oneLength);
int rand2 = (int) (Math.random() * twoLength);
int rand3 = (int) (Math.random() * threeLength);

String phrase = wordListOne[rand1] + " " + wordListTwo[rand2] + " " + wordListThree[rand3];
System.out.println("Precisamos de " + phrase);
}
}

desse jeito ele da erro, n compila (estou “fazendo” pelo dos)…
agora assim ele roda…

public class PhraseOMatic {
public static void main (String[] args) {

String[] Word1 = {“24/7”, “várias camadas”, “30.000 pés”, “B-to-B”, “todos ganham”, “front-end”, “baseado na Web”, “difundido”, “inteligente”, “seis sigma”, “caminho crítico”, “dinâmico”};
String[] Word2 = {“habilitado”, “adesivo”, “valor agregado”, “orientado”, “central”, “distribuído”, “agrupado”, “solidificado”, “independente da máquina”, “posicionado”, “em rede”, “dedicado”, “alavancado”, “alinhado”, “destinado”, “compartilhado”, “cooperativo”, “acelerado”};
String[] Word3 = {“processo”, “ponto máximo”, “solução”, “arquitetura”, “habilitação no núcleo”, “estratégia”, “mindshare”, “portal”, “espaço”, “visão”, “paradigma”, “missão”};

int oneLength = Word1.length;
int twoLength = Word2.length;
int threeLength = Word3.length;

int rand1 = (int) (Math.random() * oneLength);
int rand2 = (int) (Math.random() * twoLength);
int rand3 = (int) (Math.random() * threeLength);

String phrase = Word1[rand1] + " " + Word2[rand2] + " " + Word3[rand3];
System.out.println("Precisamos de " + phrase);
}
}

agora pq o 1 n roda ?

e o segundo é esse aqui

class Shuffle1 {
public static void main(String [] args) {
int x = 3;

while (x > 0); {
    if (x > 2 ) {
        System.out.print("a");
    }
    x = x - 1;
    System.out.print("-");
    if (x == 2); {
        System.out.print("b  c");
    }
    if (x == 1); {
        System.out.print("d");
        x = x - 1;
     }
   }
 }

}
ele compila mas na hora de rodar n roda fica “pensando” e nada…
e mais uma dúvida se minha classe se chamar “Telefone” tenho q salvar o arquivo com o nome “Telefone” certo ?

quando postar códigos coloque entre as tags [CODE]
sobre o Telefone sim salve com o nome da classe
o primeiro não entendi pq não funciona
e o segundo vo explica

class Shuffle1 { 
public static void main(String [] args) { 
int x = 3; 

while (x > 0); { 
//só aqui da pra explica
//quando você não abre colchetes para encapsular os comandos for, if, //while executam a proxima linha enquanto a informação continuar //verdadeira
//no caso enquanto 3>0 vai executar a proxima linha que é ; então x não //diminui e o progroma continua

ou algo parecido

Desculpa não ver o intuito da questão e não ter respondido
não sei pq veio na minha cabeça de explica
ainda errei sobre o ultimo if
eu to analizando e falo se ver algo

[quote=Mark_Ameba]quando postar códigos coloque entre as tags [CODE]
sobre o Telefone sim salve com o nome da classe
o primeiro não entendi pq não funciona
e o segundo vo explica

[code]
class Shuffle1 {
public static void main(String [] args) {
int x = 3;

while (x > 0); { //Enquando x for maior que 0 continue
if (x > 2 ) { //se x for maior que 2
System.out.print(“a”); //imprima a(o programa imprimi a na primeira vez porque x é 3 e 3 > 2)
}
x = x - 1; // x é igual a ele mesmo -1(resultado x=2)
System.out.print("-"); //imprimi -
if (x == 2); { se x referenciar ao valor 2
System.out.print(“b c”); //imbrimir b c
}
if (x == 1); { //aqui x não passa na primeira volta pq ainda vale 2
System.out.print(“d”);
x = x - 1; //x diminui 1 novamente e passa a valer um
//o loop volta passa no ultimo if e imprimi d
}
}
}
}
[/code][/quote]

Exatamente desse jeito mesmo, mas pq ele não roda ?ele compila mas quando é para rodar ele fica processando…processando e processando…e nada.

Já respondi no edit do primeiro post;
veja que só esse código já compila

class Shuffle1 { 
 public static void main(String [] args) { 
 int x = 3; 
 
 while (x > 0); 
 } 
 } 

sobre o primeiro
ambos funcionam mas no primeiro
voce instancia a array como
wordListTree
e chama com os metodos a frente wordListThree
esse h amais não deixa compila

[quote=Mark_Ameba]sobre o primeiro
ambos funcionam mas no primeiro
voce instancia a array como
wordListTree
e chama com os metodos a frente wordListThree
esse h amais não deixa compila[/quote]

Amigo realmente o erro do 1 é esse, programação é f*** qualquer deslize vc erra hehehe valeu amigo.

do 2 já viu a resposta?

o 2 no Netbeans aki ele roda blz agora no dos n roda compila mas n roda.

[quote=Mark_Ameba]

class Shuffle1 { 
public static void main(String [] args) { 
int x = 3; 

while (x > 0); { 
//só aqui da pra explica
//quando você não abre colchetes para encapsular os comandos for, if, //while executam a proxima linha enquanto a informação continuar //verdadeira
//no caso enquanto 3>0 vai executar a proxima linha que é ; então x não //diminui e o progroma continua

ou algo parecido[/quote]

Conseguiu entender?

Não entendi, vc fala q para os comandos, if, while, for etc…precisa ser aberto com { (chaves) sim eu abri o while com a { e fechei.

É que você colocou um ; depois do while:

while (x > 0); // não tem esse ponto e vírgula { }

e o que ele falou foi pra você colocar o { logo depois do while:

while (x > 0) { }

T+

roda esses dois códigos e ve se entende
com chaves

int i = 3;

while(i>0){
System.out.println(i);
i--;
}

sem chaves

int i =3;
while(i>0)
System.out.println(i);
i--;

nossa senhora na minha cara e eu nem vi, então os testes condicionais e os loops naum precisam ser fechados com ponto e virgula ?

mais uma dúvida aki como q o"java" sabe q tem q colocar um - entre o C e o D ?

Cuma???

?

Não entendi a sua dúvida…

nossa esquece viajei cara.

eu quis dizer que eles não precisam ser abertos e fechados com chaves
isso seria no caso de ter que rodas duas linhas de codigo
sem as chaves eles executam a proxima linha

eu não entendi esse do C - D