Dificuldade com Switch!

6 respostas
P

sou novato com programação em java e gostaria que alguém me ajudasse com um problema de inicialização de variveis.

import java.util.Scanner;

public class Cadastro

{

public static void main(String[]args)

{

int Opcao = 1,Telefone;

String Nome,SobreNome;

do

{

Scanner imput = new Scanner(System.in);

System.out.println(1 - Cadastrar);

System.out.println(2 - Visualizar);

System.out.println(3 - Sair);

Opcao = imput.nextInt();

switch(Opcao)

{

case 1:

System.out.println(Entre com o nome:);

Nome = imput.next();

System.out.println(Entre com o sobrenome:);

SobreNome = imput.next();

System.out.println(entre com o Telefone:);

Telefone = imput.nextInt();

case 2:

x->	                                      System.out.println("Nome: "+Nome+ '+SobreNome+"Telefone: "+Telefone);

case 3:

default: System.out.println(Nao especificado no menu!!);

}

}while(Opcao!=3);

}

}

no treicho setado x-> do programa tem um erro porque as variaveis não foram inicializadas, eu  tentei fazer um if para corrigir o problema mas não deu muito certo. Diz que minha variavel não foi inicializada, mas  que eu tenho um menu posso inicializa-las acima, na opção 1, eu sei que se eu definir como opção a 2 as variaveis estarão vazias mas como eu resolvo esse problema!!

Vlw :roll:

6 Respostas

peczenyj

Se vc não coloca um break no fim de cada grupo de instruções, o switch vai “caindo” para os outros.

O ideal (nesse momento) seria vc ter um boolean “cadastrou” e armazenar se vc cadastrou ou não um usuario.

P

vergonhoso eu ter esquecido do break :oops:!!! muito obrigado aí!

mas ele continua dando o seguinte erro: variable Nome might not have been initialized
variable SobreNome might not have been initialized
variable Telefone might not have been initialized

vlw!!

recoma

Outra dica: Use a opção Code para colar seu código:

import java.util.Scanner;

public class Cadastro {

    public static void main(String[] args) {
        int Opcao = 1, Telefone;
        String Nome, SobreNome;
        do {
            Scanner imput = new Scanner(System.in);
            System.out.println("1 - Cadastrar");
            System.out.println("2 - Visualizar");
            System.out.println("3 - Sair");
            Opcao = imput.nextInt();
            switch (Opcao) {
                case 1:
                    System.out.println("Entre com o nome:");
                    Nome = imput.next();
                    System.out.println("Entre com o sobrenome:");
                    SobreNome = imput.next();
                    System.out.println("entre com o Telefone:");
                    Telefone = imput.nextInt();
                case 2:
                    x-> System.out.println("Nome: "+Nome+' '+SobreNome+"Telefone: "+Telefone);
                case 3:
                default:
                    System.out.println("Nao especificado no menu!!");
            }
        } while (Opcao != 3);
    }
}
recoma

Inicialize com algum valor as variáveis...

# int Opcao = 1, Telefone = 0;
# String Nome = "", SobreNome = "";

import java.util.Scanner;

public class Cadastro {

    public static void main(String[] args) {
        int Opcao = 1, Telefone = 0;
        String Nome = "", SobreNome = "";
        do {
            Scanner imput = new Scanner(System.in);
            System.out.println("1 - Cadastrar");
            System.out.println("2 - Visualizar");
            System.out.println("3 - Sair");
            Opcao = imput.nextInt();
            switch (Opcao) {
                case 1:
                    System.out.println("Entre com o nome:");
                    Nome = imput.next();
                    System.out.println("Entre com o sobrenome:");
                    SobreNome = imput.next();
                    System.out.println("entre com o Telefone:");
                    Telefone = imput.nextInt();
                    break;
                case 2:
                    System.out.println("Nome: "+Nome+' '+SobreNome+"Telefone: "+Telefone);
                    break;
                case 3:
                default:
                    System.out.println("Nao especificado no menu!!");
            }
        } while (Opcao != 3);
    }
}
P

recoma:
Inicialize com algum valor as variáveis…

int Opcao = 1, Telefone = 0;

String Nome = “”, SobreNome = “”;

Mas toda vez que eu for fazer um programa eu tenho que inicializar as variaveis com algum valor??
me parece que o compilador java é bastante exigente nesse aspecto :frowning:

se souber alguma outra maneira de resolver o problema eu agradeço!! vlw d++!!! :smiley:

P

Muito bom!! vlw aí a ajuda de todos… como resultado final e ultilizando as dicas eu deixei o programa assim:

import java.util.Scanner;

public class Cadastro

{

public static void main(String[]args)

{

int Opcao=1,Telefone=0;

String Nome = " ",SobreNome = " ";

boolean Cadastrou=false;

do

{

Scanner imput = new Scanner(System.in);

System.out.println(1 - Cadastrar);

System.out.println(2 - Visualizar);

System.out.println(3 - Sair);

Opcao = imput.nextInt();

switch(Opcao)

{

case 1:

Cadastrou=true;

System.out.println(Entre com o nome:);

Nome = imput.next();

System.out.println(Entre com o sobrenome:);

SobreNome = imput.next();

System.out.println(entre com o Telefone:);

Telefone = imput.nextInt();

break;

case 2:

if(Cadastrou == true)

{

System.out.println("Nome: “+Nome+’ '+SobreNome+” Telefone: "+Telefone);

}

else

System.out.println(Usuario nao cadastrado!);

break;

case 3:

default: System.out.println(Nao especificado no menu!!);

}

}while(Opcao!=3);

}

}
Criado 7 de março de 2008
Ultima resposta 7 de mar. de 2008
Respostas 6
Participantes 3