O contrario de "equals"

25 respostas
Tiago_Transltr

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…

25 Respostas

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

soh colocar

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

Tiago_Transltr
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"));

}
}

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

dicabeca
errado
while (!dados[a][2].equals("0"));  
   
 }
certo
while (!dados[a][2].equals("0")){  
   
 }
Tiago_Transltr
dicabeca:
errado
while (!dados[a][2].equals("0"));  
   
 }
certo
while (!dados[a][2].equals("0")){  
   
 }
CERTO
while (!dados[a][2].equals("0"));  
 
 desse jeito no programa e nao mostra erro.. ( ao executar)
  
 }

ERRADO

while (!dados[a][2].equals("0")){  
   
 }
[/quote]

Se eu mudar pra isso dá erro sem executar...

lina

Oi,

Qual o erro que aparece ?

Tchauzin!

Tiago_Transltr

lina:
Oi,

Qual o erro que aparece ?

Tchauzin!

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

gilmaslima

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

B
Tiago Transltr:
CERTO
while (!dados[a][2].equals("0"));  
 
 desse jeito no programa e nao mostra erro.. ( ao executar)
  
 }

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].

Tiago_Transltr
Bruno Laturner:
Tiago Transltr:
CERTO
while (!dados[a][2].equals("0"));  
 
 desse jeito no programa e nao mostra erro.. ( ao executar)
  
 }

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].

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?

J

Para evitar NullPointerException:

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

}
maior_abandonado
Tiago Transltr:
CERTO
while (!dados[a][2].equals("0"));  
 
 desse jeito no programa e nao mostra erro.. ( ao executar)
  
 }

ERRADO

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

Se eu mudar pra isso dá erro sem executar...

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...

ViniGodoy
[quote=Tiago Transltr]
dicabeca:
errado
while (!dados[a][2].equals("0"));  
   
 }
certo
while (!dados[a][2].equals("0")){  
   
 }
CERTO
while (!dados[a][2].equals("0"));  
 
 desse jeito no programa e nao mostra erro.. ( ao executar)
  
 }

ERRADO

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

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.

lina

Oi,

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

Tchauzin!

Marky.Vasconcelos

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?”

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?”

wbdsjunior
ViniGodoy:
Tiago Transltr:
dicabeca:
errado
while (!dados[a][2].equals("0"));  
   
 }
certo
while (!dados[a][2].equals("0")){  
   
 }
CERTO
while (!dados[a][2].equals("0"));  
 
 desse jeito no programa e nao mostra erro.. ( ao executar)
  
 }

ERRADO

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

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.

mas a parada não é um do while?

Tiago Transltr:
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"));
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!

Tiago_Transltr

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!

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

wbdsjunior
Tiago Transltr:
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"));

}
}

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

o problema é que dá uma NullPointerException.

Renyo
for (int i = 0; i < 100; i++)
{
  if (!dados[i][2].equals("0"))
  {
       System.out.println("Thyrfing");
   }
}

falo…

maior_abandonado

Tiago Transltr:
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!

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

um jeito mais legal seria vc usar enums pra isso… swicth case aceita enums…

Tiago_Transltr

Ja coloquei chaves em todo canto da erro… :cry: :cry: :cry:

Renyo

for (int i = 0; i < 100; i++) { if (!dados[i][2].equals("0")) { System.out.println("Thyrfing"); } }

Marky.Vasconcelos

O problema ali não é a chave não tinha reparado que era um do…while

Então o certo é

do{
//faz tudo
}while(expressao);

O problema é que voce verifica posições nulas.

Leandro_Vecchi

Facil, é só negar a expressão com ‘!’ na frente.

Criado 18 de dezembro de 2008
Ultima resposta 19 de dez. de 2008
Respostas 25
Participantes 13