Dúvida básica

Olá pessoal,

Gostaria que vcs me ajudassem a resolver esse probleminha, estou fazendo esse programinha bem simples e estou com uma dúvida na linha em que ele pergunta - “Deseja continuar informando”, eu queria que ele voltasse para realizar novamente as perguntas Nome, CPF e RG e fosse armazenando. Como eu faço isso?

[code]import javax.swing.*;

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

JOptionPane.showMessageDialog(null,“Bem-Vindo ao Cadastro”);

String nome = JOptionPane.showInputDialog("Digite o Nome: ");
String cpf = JOptionPane.showInputDialog("Digite o CPF: ");
String rg = JOptionPane.showInputDialog("Informe o rg: ");
String deseja = JOptionPane.showInputDialog("Deseja continuar Informando: Sim ou Não ");
if (deseja.equals(“sim”)){
}
else {
JOptionPane.showMessageDialog(null,“Você saiu do Sistema”);
}
String informacao = JOptionPane.showInputDialog(“Deseja salvar as informações? Sim ou Não”);
if (informacao.equals(“sim”)){

 JOptionPane.showMessageDialog(null,"As Informações foram salvas");

}
else {

 JOptionPane.showMessageDialog(null,"As Informações não foram salvas");
 } 

System.out.println(nome);
System.out.println(cpf);
System.out.println(rg);
}
}[/code]

Tudo bem Patricia_maceRS?

ve se da certo assim, enquanto for sim ele vai fica perguntando a hora que for nao ele continua o programa


do{

  JOptionPane.showMessageDialog(null,"Bem-Vindo ao Cadastro");    
      
  String nome = JOptionPane.showInputDialog("Digite o Nome: ");  
  String cpf = JOptionPane.showInputDialog("Digite o CPF: ");  
  String rg = JOptionPane.showInputDialog("Informe o rg: ");  
  String deseja = JOptionPane.showInputDialog("Deseja continuar Informando: Sim ou Não ");  

}while(deseja.equals("Sim"));

Olá.

Você vai precisar trabalhar com loop. No caso, o do . . . while. Veja um exemplo de algoritmo em liguagem natural:

Faça
Ler nome
Ler CPF
Ler RG

       "Deseja continuar ?" 
       Entrar com a resposta

Enquanto resposta = “sim”

Dê uma pesquisada no fórum que você vai encontrar bastante coisa e vai conseguir resolver esse problema.

Até mais a bom estudo.

Cara Patricia_maceRS,

Acredito que no seu caso seja melhor uma troca de comandos, retire o comando IF e utilize o comando WHILE colocando suas perguntas dentro do bloco WHILE, assim elas irão repertir até que a condição de parada do WHILE seja alcançada

A outra solução, caso você queira apenas uma repetição, seria você colocar novamente as perguntas dentro do bloco IF, lembrando que após ele perguntar se Deseja continuar Informando: Sim ou Não: o java apenas solicitará uma unica vez que seja digitado novamente todas as respostas.

Veja bem o que você realmente deseja fazer e poste novamente para podermos te ajudar melhor ok, qualquer coisa e so entrar em contato :slight_smile: fernei_pb@hotmail.com.

é , concordo com os amigos…eles explicam o exemplo que postei um pouco antes deles…

acho que a solucao é essa mostrada por mim , fernei e flaviosf.

qualquer coisa só postar que a ajudamos.

abraco a todos.

Ta dando vários erros…não tô conseguindo…

Consegui fazer mas agora ele tá em um loop infinito que não sai mais, queria que depois que perguntasse se quer continuar informando viesse junto com as perguntas uma opção para sair do sistema.

Me deêm uma dica, please!! :slight_smile:

[code]import javax.swing.*;

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

JOptionPane.showMessageDialog(null,“Bem-Vindo ao Registrador de Chamadas”);

String nome = JOptionPane.showInputDialog("Digite o Nome: ");
String CPF = JOptionPane.showInputDialog("Digite o CPF: ");
String RG = JOptionPane.showInputDialog("Informe o RG: ");
String deseja = JOptionPane.showInputDialog("Deseja continuar Informando: Sim ou Não ");
while (deseja.equals(“sim”)){
String nome1 = JOptionPane.showInputDialog("Digite o Nome: ");
String CPF1 = JOptionPane.showInputDialog("Descreva o CPF: ");
String RG1 = JOptionPane.showInputDialog("Informe a RG: ");
}

while(deseja.equals(“não”)){

JOptionPane.showMessageDialog(null,"Você saiu do Sistema");
break;

}
String informacao = JOptionPane.showInputDialog(“Deseja salvar as informações? Sim ou Não”);
if (informacao.equals(“sim”)){

 JOptionPane.showMessageDialog(null,"As Informações foram salvas");

}
else {

 JOptionPane.showMessageDialog(null,"As Informações não foram salvas");
 } 

System.out.println(nome);
System.out.println(CPF);
System.out.println(RG);
}
}[/code]

Oi Patrícia
No Código q vc colocou está assim:

Não tem muito sentido vc fazer dois whiles, uma pra resposta ‘sim’ e outro pra restoa ‘não’.
A melhor forma de vc fazer isso é como o gabrielmassote colocou, porém, eu instanciaria as variáveis fora do DoWhile.

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

    /**Mensagem de boas vindas*/       
    JOptionPane.showMessageDialog(null,"Bem-Vindo ao Registrador de Chamadas");    

    /**criação das variáveis*/             
    String nome, cpf, rg;

    /**Início do Loop
    * Ele sempre irá iniciar o loop, pelo menos uma 1ª vez.
    */       
    do{  
       JOptionPane.showMessageDialog(null,"Bem-Vindo ao Cadastro");      
       nome = JOptionPane.showInputDialog("Digite o Nome: ");    
       cpf = JOptionPane.showInputDialog("Digite o CPF: ");    
       rg = JOptionPane.showInputDialog("Informe o rg: ");    
       deseja = JOptionPane.showInputDialog("Deseja continuar Informando: Sim ou Não ");    

       /**Caso a condição do while seja satisfeita, nesse caso, se  a resposta for 'sim', ele repetirá.
       * Caso o usuário digite qualquer outra coisa, ele vai sair do loop e continuará com o restante do código.
       */       
     }while(deseja.equalsIgnoreCase("Sim"));  

     /**quando sair do while, emitir a resposta q saiu do sistema.*/      
     JOptionPane.showMessageDialog(null,"Você saiu do Sistema"); 

     /**continuar o restante do código*/       

Só três dicas:

  • sempre instancia variáveis com letras minúsnuclas. Todas maiúsculas quer dizer CONSTANTES.
  • é um bom hábito de programação comentar o código para, numa hora de ‘aperreio’ (cabeça quente), saber encontrar o erro.
  • vá aos poucos se acostumando a ler a documentação do Java. Ela está disponível no site da Sun.

Abraços

Valeu Berg.Pb…consegui… agora só explorando mais um pouquinho… :stuck_out_tongue: Sempre que vou inserindo o cadastro ele tá armazenando só a última informação mostrando na tela…tem como mostrar todas as informações que eu colocar e não somente a última que eu coloquei?

Creio que a melhor maneira de fazer isso é usando uma ArrayList.

import javax.swing.*;
import java.util.*;
class candidato{  
  public static void main (String args[]){  

          
    JOptionPane.showMessageDialog(null,"Bem-Vindo ao Registrador de Chamadas");    
    ArrayList<String> Nome = new ArrayList<String>();
    ArrayList<String> Cpf = new ArrayList<String>();
    ArrayList<String> Rg = new ArrayList<String>();
    
    String nome, cpf, rg, deseja;

    do{  
       JOptionPane.showMessageDialog(null,"Bem-Vindo ao Cadastro");      
       nome = JOptionPane.showInputDialog("Digite o Nome: "); 
       Nome.add(nome);
       cpf = JOptionPane.showInputDialog("Digite o CPF: ");   
       Cpf.add(cpf);
       rg = JOptionPane.showInputDialog("Informe o rg: ");   
       Rg.add(rg);
       deseja = JOptionPane.showInputDialog("Deseja continuar Informando: Sim ou Não ");    

             
     }while(deseja.equalsIgnoreCase("Sim"));  
   
     JOptionPane.showMessageDialog(null,"Você saiu do Sistema"); 
     
     String informacao = JOptionPane.showInputDialog("Deseja salvar as informações? sim ou não");   
     if (informacao.equals("sim")){   
       
       JOptionPane.showMessageDialog(null,"As Informações foram salvas");   
     }   
     else {   
       
       JOptionPane.showMessageDialog(null,"As Informações não foram salvas");   
       }   
     for(int i = 0; i < Nome.size(); i++){    
       JOptionPane.showMessageDialog(null,"Nome: "+ Nome.get(i)+"\nCPF: "+Cpf.get(i)+"\nRG: "+Rg.get(i));
     }     
  }
}

     

Mais ou menos isso.

Consegui Mid , valeu mesmo. Obrigada a todos que me ajudaram.

Olá ! sou novo por aqui, e novo também no Java. Queria saber como faz uma pergunta se deseja continuar ou não, mas só poder continuar quando estiver ainda espaço no vetor, quando não estiver mais espaço , aparecer a mensagem !
Obrigado a todos.

public void Cadastrar()
{
String op = null;

	do {
	
	for (int i=0; i < 3; i++)
	{
		System.out.println("Digite seu nome: ");
		aluno.nome[i] = scan.next();
		System.out.println("Digite sua matricula: ");
		aluno.matricula[i] = scan.nextInt();
		System.out.println("Digite sua nota: ");
		aluno.nota[i] = scan.nextDouble();
		System.out.println("Continuar: S ou N");
		op = scan.nextLine();
	
	}	
	}while(op == "s");

}

juniorstark,

Se contador menor que vetor (if)
deseja inserir
sim? não?
Se sim
faça algo
se não
sair
se vetor maior ou igual
sair

de uma pesuisada aqui no GUJ, temos vários exemplos!