Alterar fluxo do programa e mais

8 respostas
I

Olá…

Estou criando um aplicativo para treinar assim:
Ele pega 4 notas suas por InputDialog e depois que ele lê as 4, ele mostra uma tela falando se você passou ou não.
Gostaria de acrescentar um botão yes/no no final, perguntando se ele gostaria de achar a média pra outras matérias ao inves de sair, como faço pra jogar o fluxo do final do programa, pro inicio?

E outra coisa, estou pegando as notas por input dialog de JOption, teria como verificar se a nota é verdadeira ou não? e se não for pedir pra inserir novamente? Estou pegando elas por um loop while.

Aguardo respostas

8 Respostas

cariocathi

pegue as 4 notas assim:

while ( true )
{
   pega nota1
   pega nota2
   pega nota3
   pega nota4

   // e faz 
   int i = JOptionPane.showConfirmDialog( component, msg );
   if ( i == JOptionPane.NO_OPTION )
      break;
}

assim ele só vai parar de pegar 4 notas qnd vc apertar yes

I

Mas não tem uma forma de jogar o fluxo pro inicio do programa???
Tipo um goto???

Bani

Não.
As pessoas que criaram o Java acham que o goto deixa o código muito propenso a ficar confuso.

Pense em uma lógica para o seu fluxo que não necessite desse tipo de “gambiarra”.

cv1

E nem precisa pensar muito, já que TODOS os programas podem ser escritos com lógicas de controle mais abstratas e mais “estruturadas”, ou seja, sem usar nada parecido com o goto. Se vc prestar atenção, nas entrelinhas de todo while, for, if, switch, chamada de método ou o que for, existe um goto escondidinho. O caso é: você não precisa dele, pq vc já tem estruturas de controle mais poderosas :wink:

I

Ahn… tipo jogar o programa inteiro dentro de um while? ai se digitou sim, setar a variavel do while pra ele continuar, e se digitou não, setar a variavel pra sair do while… muito bem lembrado… não tinha pensado nisso…

Mas me digam, como verificar se a nota que foi inserida está correta? setar um while dentro de um while? não fica um pouco fora do comum?

cv1

Crie um método que faça isso :wink:

louds

E nem precisa pensar muito, já que TODOS os programas podem ser escritos com lógicas de controle mais abstratas e mais “estruturadas”, ou seja, sem usar nada parecido com o goto. Se vc prestar atenção, nas entrelinhas de todo while, for, if, switch, chamada de método ou o que for, existe um goto escondidinho. O caso é: você não precisa dele, pq vc já tem estruturas de controle mais poderosas ;)

Goto é um ótimo quebra galho quando vc tem muito nesting de loops, não tem exceptions ou tua função possui um fluxo muito atipico, pense num AFN. Pros dois primeiros java tem excptions e named break, soluções muito melhores e pro último vc ta usando a ferramenta errada, um linguagem estruturada.

I

“cv”:

Crie um método que faça isso ;)

Boa, bem lembrado…

Criado 18 de dezembro de 2003
Ultima resposta 19 de dez. de 2003
Respostas 8
Participantes 5