Erro bobo

12 respostas
H

Pessoal,
Estou com um probleminha aki..

Fiz um sisteminha onde o cabra digita um valor suponhamos que 15 ele cai como a condição do laço for(), blz... só que se o esperto digitar um numero muito grande tipo 1000 ele irá repetir a mensagem "Agora i vale (valor de i)" até o valor digitado acabar... ou seja 1000 vezes...

Então, eu fiz com um if uma verificação se o i chegou ao 200, se sim, ele exibe uma mensagem informando o numero que ele está, e quantos faltam, e daí ele pergunta se você deseja parar por ali... Se você digitar sim (pois deu para colocar tipo radio buttom pois num sei :lol: ) ele pára a execução e exibe no shell uma mensagem ... se vc digitar qualquer outra coisa que não seja sim, ele continuará até os 1000...

Tá, ele funciona normal, porém se eu digitar sim, ele pára e exibe a mensagem, só que no shell aparece vários C:\root\java\bin>

O que poderia ser ? eu acho que é no if mas sei lá...

import javax.swing.JOptionPane;
class loops{
	public static void main(String[] args){
		int total;
		String cancela;
		total = Integer.parseInt(JOptionPane.showInputDialog("Digite um 

número \n Qualquer um menos 56 ..."));
		for( int i=1;i<=total; i++){
			if( i == 200 ){
				JOptionPane.showMessageDialog(null,
					"Hehehe... estamos no 200! \nSão " + total + 

" no total... \n",
				"Parou um segundo...",
				JOptionPane.ERROR_MESSAGE);
				cancela = JOptionPane.showInputDialog("Deseja 

cancelar por aki? ( digite sim )");
				if( cancela.equals("sim")){
					System.out.println("Vc eh burro mesmo!");
					System.exit(0);
				}
			}
			JOptionPane.showMessageDialog(null,
				"Agora i vale " + i + "\n",
				"Possiveis valores de i",
				JOptionPane.INFORMATION_MESSAGE);
		}
		System.exit(0);
	}
}

até... :)

12 Respostas

L

Cara… e se ao invés de comparar o texto que o cara digitou, você utilizasse o JOptionPane.showMessage? com a mensagem por exemplo “Terminar por aqui”… se o cara clicar em OK, ou seja, se a variável for dferente de null você termina… se não, ou seja, se a variável for igual a null você continua… talvez seja mais fácil.

Espero ter ajudado

H

Eu pensei em fazer isso, só num sei como ...

if(JOptionPane.showMessageDialog("Deseja cancelar 

por aki?")){
					System.out.println("Vc eh burro mesmo!");
					System.exit(0);
				}

Como eu faria ?

até... :)

L
Desculpa, me enganei. Com o showMessage não é possivelquis dizer com o showInput mesmoa =JOptionPane.showInputDialog(Deseja cancelar por aki?”) ;

if(a !=null ){ //se o cara clicar em cancelar

System.out.println(Vc eh burro mesmo!);

System.exit(0);

}
talvez isso funcione se não, faça a comparação com o equals mesmob = sim;

if(a.equals(b)){

JOptionPane.showMessageDialog(null,“saindo);

}

else{

System.out.print(troxa);

}

falows… e desculpa a confusão

H

blz... esquenta não...

cancela = JOptionPane.showInputDialog("Deseja 

cancelar por aki?");
				if((cancela == null) || (cancela.equals("sim"))){
					System.out.println("Vc eh burro mesmo!");
					System.exit(0);
				}

Ficou assim... funfa normal...
O que acha ?

até... :)

L

o ideal será cancela!=null , já que retornará null se o cara clicar em cancelar… ou seja, eue não quer mais… então teria que sair…

entendeu?

falows

H

“lounatico”:
o ideal será cancela!=null , já que retornará null se o cara clicar em cancelar… ou seja, eue não quer mais… então teria que sair…

entendeu?

falows

Então se o cara clicar em cancelar, ou seja quizer sair, o valor retornado seria null, ou seja cancela == null, pois se eu deixar cancela != null , o sistema iria sair se ele desse ok …

até… :slight_smile:

B

para parar um laço (for, no teu caso) utiliza break;

H
"bejeto":
para parar um laço (for, no teu caso) utiliza break;

então eu faço:

for(...){
if( ... ){
 ...
break;
System.exit(0);
...

Assim ?
vlws pela dica!

até.. :)

B

Quase isso.

esquece o “System.exit(0)

Isto é utilizado para interromper a execução do programa.

Use assim:

.. metodo(argumentos) { for (argumentos) { ..... if (condição) { ..... [b] break;[/b] } ...... } //Qualquer coisa que você queira fazer após o término do laço. ...... ........ ..... //Agora você tem que encerrar o programa??? então..agora sim.. System.exit(0); }

H

Então, o break irá párar a execução do loop for() e voltará ao programa principal ?

até… :slight_smile:

B

quase isso…
só não tem “programa principal”
ele continua a execução das outras intruções.

H

“bejeto”:
quase isso…
só não tem “programa principal”
ele continua a execução das outras intruções.

hehe… é custume do PHP …

Tipo quando terminamos de executar uma função, falamos que ele volta ao sistema principal…

<? print "Dê olá ao povo do Java PHP!"; print "Olá povo do java..."; // função soma function soma($var,$var2){ return $var + $var2; } // retorna o valor de soma() no programa principal print soma(8,2); // Imprime 10 ?>

mas com o tempo eu me acustumo com os nomes diferenciados de ambos… hehe… vlw cara pelas dicas…

até… :slight_smile:

Criado 10 de abril de 2005
Ultima resposta 12 de abr. de 2005
Respostas 12
Participantes 3