Duvidas sobre comparar o conteudo de uma switch!

2 respostas
renanmoraes

meu código está assim:

import javax.swing.*;

public class cadastro

{

public static int codigo;

public static String nome="";
void registro()
{
   switch (codigo)
   {
       case 0:
          nome += "fulano";
          break;
        case 1:
          nome += "fulano2";
          break;
          default: nome = "Sem Registro!";  
     } // fecha switch

   } //fecha void registro

public static void main (String[] args)
{
     new cadastro().registro();

      String s;
      s = JOptionPane.showInputDialog ("Digite Codigo Case");
      codigo = Integer.parseInt(s);

      if (s.equals(codigo))
      { 
           JOptionPane.showMessageDialog(null,"Código Case Correto");
      }else{
           JOptionPane.showMessageDialog(null,"Código Case Invalido");
           System.exit(0);
      } 

} // fecha main

} // fecha class


Executando…

meu problema é quando digito no JOptionPane o código do Case que não está acontecendo a comparação correta. por algum motivo que desconheço :
no caso teria que dar certo essa comparação para eu proceguir e criar outro JOptionPane comparando o conteudo da Case.

Obrigado Pessoal pela atenção… Ajudem ai! :slight_smile:

2 Respostas

cu_ringa

do jeito q está escrito o case do switch sempre vai ser o ‘case 0’.
pq vc cria o objeto e chama a função registro e depois q atribui valor as variaveis. A variavel ‘int codigo’ será 0 pq variavel int global é inicializada por default com 0.

new cadastro().registro();

String s;
s = JOptionPane.showInputDialog ("Digite Codigo Case");
codigo = Integer.parseInt(s);

vc não pode comparar String com int

if (s.equals(codigo))
LPJava

converta o valor em string para inteiro e compare!!! lembre que GUI, no meu conhecimento e nesse caso so recebe string, porem vc tem q converter!! para inteiro para fazer a comparação pelo mesmo tipoo!!

Criado 17 de agosto de 2006
Ultima resposta 18 de ago. de 2006
Respostas 2
Participantes 3