O contrario de "equals"

Alguem ai sabe como faço a diferença entre strings?

while (dados[a][2].equals("0"));

quero que enquanto dados[a][2] for diferente de “0” o comando while seja executado…

while (!dados[a][2].equals("0"));

soh colocar

while (!dados[a][2].equals(“0”));

[code]package escrevanome;

import javax.swing.JOptionPane;// abrindo a pacote javax.swing

public class Main {

public static void main(String[] args) {

String dados[][] = new String[100][3];
int a=0;

do{

for (int i=1;i !=4;i++){

if (i == 1)
dados[a][0] = JOptionPane.showInputDialog("Digite o código da empresa: ");

if (i == 2)   
dados[a][1] = JOptionPane.showInputDialog("Digite o número de funcionários: ");

if (i == 3)
dados[a][2] =JOptionPane.showInputDialog("Digite o porte da empresa:           (P, M ou G)");

} 

a = a+1;

}
while (!dados[a][2].equals(“0”));

}
}[/code]

Ta dando erro em: “while (!dados[a][2].equals(“0”));” pq?

errado

[code] while (!dados[a][2].equals(“0”));

} [/code]
certo

[code]
while (!dados[a][2].equals(“0”)){

} [/code]

[quote=dicabeca]errado

[code] while (!dados[a][2].equals(“0”));

} [/code]
certo

[code]
while (!dados[a][2].equals(“0”)){

} [/code][/quote]

CERTO

[code] while (!dados[a][2].equals(“0”));

Tá desse jeito no programa e nao mostra erro… (só ao executar)

} [/code]

ERRADO

[code]
while (!dados[a][2].equals(“0”)){

} [/code][/quote]

Se eu mudar pra isso dá erro sem executar…

Oi,

Qual o erro que aparece ?

Tchauzin!

[quote=lina]Oi,

Qual o erro que aparece ?

Tchauzin![/quote]

Exception in thread “main” java.lang.NullPointerException
at escrevanome.Main.main(Main.java:31)
Java Result: 1

a linha 31 é essa: while (!dados[a][2].equals(“0”));

Deixe seu código assim:

    package escrevanome;  
      
    import javax.swing.JOptionPane;// abrindo a pacote javax.swing  
      
    public class Main {  
      
        public static void main(String[] args) {  
          
      
   String dados[][] = new String[100][3];        
   int a=0;          
             
   do{  
     
   for (int i=1;i !=4;i++){  
     
       if (i == 1)  
       dados[a][0] = JOptionPane.showInputDialog("Digite o código da empresa: ");  
        
       if (i == 2)     
       dados[a][1] = JOptionPane.showInputDialog("Digite o número de funcionários: ");  
         
       if (i == 3)  
       dados[a][2] =JOptionPane.showInputDialog("Digite o porte da empresa:           (P, M ou G)");  
        
       }   
     
   a = a+1;  
   while (!dados[a][2].equals("0")){
   // faz algo no loop while
   }   
  
   
     
     
   }  
   }  

o while tem que ficar dentro do método, por isso, estava dando erro

[quote=Tiago Transltr]
CERTO

[code] while (!dados[a][2].equals(“0”));

Tá desse jeito no programa e nao mostra erro… (só ao executar)

} [/code][/quote]

Tiago, você sabe o que esse código faz? Nada.

Aliás ou o ele nunca vai executar, ou ele vai entrar um loop infinito, e a única salvação p/ este ultima caso é se uma outra thread modificar a String dentro de dados[a][2].

[quote=Bruno Laturner][quote=Tiago Transltr]
CERTO

[code] while (!dados[a][2].equals(“0”));

Tá desse jeito no programa e nao mostra erro… (só ao executar)

} [/code][/quote]

Tiago, você sabe o que esse código faz? Nada.

Aliás ou o ele nunca vai executar, ou ele vai entrar um loop infinito, e a única salvação p/ este ultima caso é se uma outra thread modificar a String dentro de dados[a][2].[/quote]

3.Uma agência de publicidade quer prestar seus serviços somente para as maiores companhias, em número de funcionários, em cada um das classificações: Grande, Média e Pequena. Escreva um programa que leia um conjunto de dados que representam o código, o número de funcionários e o porte da empresa (G, M ou P) e imprima: O código de cada empresa com maiores recursos humanos dentro de cada categoria. Utilizar como finalizador o código de empresa igual a 0 (zero).
Sugestão: faça um método para ler os dados e armazenar em um vetor, outro para percorrer o vetor e contar o nro de funcionários em armazenar em G, M e P, outro método para imprimir os resultados.

Entendeu o pq dessa condição igual a zero?

Para evitar NullPointerException:

[code]while (!“0”.equals(dados[a][2])) {

}[/code]

[quote=Tiago Transltr]

CERTO

[code] while (!dados[a][2].equals(“0”));

Tá desse jeito no programa e nao mostra erro… (só ao executar)

} [/code]

ERRADO

[code]
while (!dados[a][2].equals(“0”)){

} [/code]

Se eu mudar pra isso dá erro sem executar…[/quote]

se vc colocar “;” no final do while ele vai executar uma sentença nula (ou seja, nada), e não o que vc pretende que ele execute…

[quote=Tiago Transltr][quote=dicabeca]errado

[code] while (!dados[a][2].equals(“0”));

} [/code]
certo

[code]
while (!dados[a][2].equals(“0”)){

} [/code][/quote]

CERTO

[code] while (!dados[a][2].equals(“0”));

Tá desse jeito no programa e nao mostra erro… (só ao executar)

} [/code]

ERRADO

[code]
while (!dados[a][2].equals(“0”)){

} [/code]

Errado. Se você colocar um ; depois do seu while, você está dizendo para o Java que seu while não possui nenhum comando. O certo é com as chaves mesmo. Com as chaves vc diz: “Ei, repita tudo o que está dentro das chaves, ok, java querido?”

Se você está tendo erro, com certeza não é por causa dessas chaves, mas é por conta do seu código mesmo.

Oi,

Na realidade a posição da matriz [][2] está nulla.

Tchauzin!

[quote=ViniGodoy]
Errado. Se você colocar um ; depois do seu while, você está dizendo para o Java que seu while não possui nenhum comando. O certo é com as chaves mesmo. Com as chaves vc diz: “Ei, repita tudo o que está dentro das chaves, ok, java querido?”[/quote]

Completando…

Se voce não colocar as chaves depois do while voce esta dizendo ao java: “Ei, repete só a próxima linha, tudo bem?”

[quote=ViniGodoy][quote=Tiago Transltr][quote=dicabeca]errado

[code] while (!dados[a][2].equals(“0”));

} [/code]
certo

[code]
while (!dados[a][2].equals(“0”)){

} [/code][/quote]

CERTO

[code] while (!dados[a][2].equals(“0”));

Tá desse jeito no programa e nao mostra erro… (só ao executar)

} [/code]

ERRADO

[code]
while (!dados[a][2].equals(“0”)){

} [/code]

Errado. Se você colocar um ; depois do seu while, você está dizendo para o Java que seu while não possui nenhum comando. O certo é com as chaves mesmo. Com as chaves vc diz: “Ei, repita tudo o que está dentro das chaves, ok, java querido?”

Se você está tendo erro, com certeza não é por causa dessas chaves, mas é por conta do seu código mesmo.[/quote][/quote]

mas a parada não é um do while?

[quote=Tiago Transltr][code]do{

for (int i=1;i !=4;i++){

if (i == 1)
dados[a][0] = JOptionPane.showInputDialog("Digite o código da empresa: ");

if (i == 2)   
dados[a][1] = JOptionPane.showInputDialog("Digite o número de funcionários: ");

if (i == 3)
dados[a][2] =JOptionPane.showInputDialog("Digite o porte da empresa:           (P, M ou G)");

} 

a = a+1;

}
while (!dados[a][2].equals(“0”));[/code][/quote]

A galera ta apelando hj!
é um do{} while;

e outra, o que a professora dele pediu para fazer e a forma que ele está bolando está errada!

utilize switch/case é melhor!

Tchauzin!

[quote=lina]A galera ta apelando hj!
é um do{} while;

e outra, o que a professora dele pediu para fazer e a forma que ele está bolando está errada!

utilize switch/case é melhor!

Tchauzin![/quote]

o “case” só não aceita expressões logicas… não sei como usando ele

[quote=Tiago Transltr][code]package escrevanome;

import javax.swing.JOptionPane;// abrindo a pacote javax.swing

public class Main {

public static void main(String[] args) {

String dados[][] = new String[100][3];
int a=0;

do{

for (int i=1;i !=4;i++){

if (i == 1)
dados[a][0] = JOptionPane.showInputDialog("Digite o código da empresa: ");

if (i == 2)   
dados[a][1] = JOptionPane.showInputDialog("Digite o número de funcionários: ");

if (i == 3)
dados[a][2] =JOptionPane.showInputDialog("Digite o porte da empresa:           (P, M ou G)");

} 

a = a+1;

}
while (!dados[a][2].equals(“0”));

}
}[/code]

Ta dando erro em: “while (!dados[a][2].equals(“0”));” pq?
[/quote]

o problema é que dá uma NullPointerException.