Estou usando o break errado nesse código...?

2 respostas
joni.mendes

Eu estou criando uns códigos simples para aprendizado, mas nesse código eu fiz tudo sem o break e na resposta final
Ficou mostrando o nome da pessoa com o maior peso e a maior altura, e não parava de mostrar...

ai coloquei um break depois de cada while para ver se parava...

o código rodou mas não exibe mais o resultado.

O que faço?

import javax.swing.JOptionPane;
public class comparacao {
	public static void main(String agrs[]){
		
		String nome1, nome2;
		float peso1, peso2, altura1, altura2;
		
		nome1 = JOptionPane.showInputDialog(null, "Digite o 1° nome", "NOME", JOptionPane.QUESTION_MESSAGE);
		nome2 = JOptionPane.showInputDialog(null, "Digite o 2° nome", "NOME", JOptionPane.QUESTION_MESSAGE);
		peso1 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Peso de " +nome1, JOptionPane.QUESTION_MESSAGE));
		peso2 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Peso de " +nome2, JOptionPane.QUESTION_MESSAGE));
	    altura1 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a altura de " +nome1, JOptionPane.QUESTION_MESSAGE));
		altura2 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a altura de" +nome2, JOptionPane.QUESTION_MESSAGE));
		
		while (peso1 > peso2){
		if (altura1 > altura2){
			JOptionPane.showMessageDialog(null, nome1, "É a pessoa mais pesada", JOptionPane.PLAIN_MESSAGE);
			JOptionPane.showMessageDialog(null, nome1, "É a pessoa mais alta", JOptionPane.PLAIN_MESSAGE);
		}
		else if (altura1 < altura2){
			JOptionPane.showMessageDialog(null, nome1, "É a pessoa mais pesada", JOptionPane.PLAIN_MESSAGE);
			JOptionPane.showMessageDialog(null, nome2, "É a pessoa mais alta", JOptionPane.PLAIN_MESSAGE);
		break;
		
		}
		while (peso2 > peso1){
			if (altura2 > altura1){
				JOptionPane.showMessageDialog(null, nome2, "É a pessoa mais pesada", JOptionPane.PLAIN_MESSAGE);
				JOptionPane.showMessageDialog(null, nome2, "É a pessoa mais alta", JOptionPane.PLAIN_MESSAGE);
			}
			else if (altura2 < altura1){
				JOptionPane.showMessageDialog(null,  nome2, "É a pessoa mais pesada", JOptionPane.PLAIN_MESSAGE);
				JOptionPane.showMessageDialog(null, nome1, "É a pessoa mais alta", JOptionPane.PLAIN_MESSAGE);
			break;
			}
			
		}
		
				
		}
	}
}

2 Respostas

C

Sei não, mas acho que seu código e a identação estão meio confusos

seria isso?

import javax.swing.JOptionPane;

public class comparacao {

	public static void main(String agrs[]) {

		String nome1, nome2;
		float peso1, peso2, altura1, altura2;

		nome1 = JOptionPane.showInputDialog(null, "Digite o 1° nome", "NOME",
				JOptionPane.QUESTION_MESSAGE);
		nome2 = JOptionPane.showInputDialog(null, "Digite o 2° nome", "NOME",
				JOptionPane.QUESTION_MESSAGE);
		peso1 = Float.parseFloat(JOptionPane.showInputDialog(null,
				"Digite o Peso de " + nome1, JOptionPane.QUESTION_MESSAGE));
		peso2 = Float.parseFloat(JOptionPane.showInputDialog(null,
				"Digite o Peso de " + nome2, JOptionPane.QUESTION_MESSAGE));
		altura1 = Float.parseFloat(JOptionPane.showInputDialog(null,
				"Digite a altura de " + nome1, JOptionPane.QUESTION_MESSAGE));
		altura2 = Float.parseFloat(JOptionPane.showInputDialog(null,
				"Digite a altura de" + nome2, JOptionPane.QUESTION_MESSAGE));

		while (peso1 > peso2) {
			if (altura1 > altura2) {
				JOptionPane.showMessageDialog(null, nome1,
						"É a pessoa mais pesada", JOptionPane.PLAIN_MESSAGE);
				JOptionPane.showMessageDialog(null, nome1,
						"É a pessoa mais alta", JOptionPane.PLAIN_MESSAGE);
			} else if (altura1 < altura2) {
				JOptionPane.showMessageDialog(null, nome1,
						"É a pessoa mais pesada", JOptionPane.PLAIN_MESSAGE);
				JOptionPane.showMessageDialog(null, nome2,
						"É a pessoa mais alta", JOptionPane.PLAIN_MESSAGE);
				break;

			}
		}
		while (peso2 > peso1) {
			if (altura2 > altura1) {
				JOptionPane.showMessageDialog(null, nome2,
						"É a pessoa mais pesada", JOptionPane.PLAIN_MESSAGE);
				JOptionPane.showMessageDialog(null, nome2,
						"É a pessoa mais alta", JOptionPane.PLAIN_MESSAGE);
			} else if (altura2 < altura1) {
				JOptionPane.showMessageDialog(null, nome2,
						"É a pessoa mais pesada", JOptionPane.PLAIN_MESSAGE);
				JOptionPane.showMessageDialog(null, nome1,
						"É a pessoa mais alta", JOptionPane.PLAIN_MESSAGE);
				break;
			}

		}

	}

}

Se for, note que o break só vai entrar se ele passar pelo else, caso contrário não vai parar...
os "whiles" seria, pra testar o peso?
Se for, não é melhor usar if?

joni.mendes

Pouts, desculpa...foi muito idiota esse erro!
hahahah
muito obrigado cara...

import javax.swing.JOptionPane;
public class comparacao {
	public static void main(String agrs[]){
		
		String nome1, nome2;
		float peso1, peso2, altura1, altura2;
		
		nome1 = JOptionPane.showInputDialog(null, "Digite o 1° nome", "NOME", JOptionPane.QUESTION_MESSAGE);
		nome2 = JOptionPane.showInputDialog(null, "Digite o 2° nome", "NOME", JOptionPane.QUESTION_MESSAGE);
		peso1 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Peso de " +nome1, JOptionPane.QUESTION_MESSAGE));
		peso2 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite o Peso de " +nome2, JOptionPane.QUESTION_MESSAGE));
	    altura1 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a altura de " +nome1, JOptionPane.QUESTION_MESSAGE));
		altura2 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite a altura de" +nome2, JOptionPane.QUESTION_MESSAGE));
		
		if (peso1 > peso2 && altura1 > altura2){
			JOptionPane.showMessageDialog(null, nome1, "É a pessoa mais pesada", JOptionPane.PLAIN_MESSAGE);
			JOptionPane.showMessageDialog(null, nome1, "É a pessoa mais alta", JOptionPane.PLAIN_MESSAGE);
		}
		else if (peso1 > peso2 && altura1 < altura2){
			JOptionPane.showMessageDialog(null, nome1, "É a pessoa mais pesada", JOptionPane.PLAIN_MESSAGE);
			JOptionPane.showMessageDialog(null, nome2, "É a pessoa mais alta", JOptionPane.PLAIN_MESSAGE);
		
		}
			if (peso2 > peso1 && altura2 > altura1){
				JOptionPane.showMessageDialog(null, nome2, "É a pessoa mais pesada", JOptionPane.PLAIN_MESSAGE);
				JOptionPane.showMessageDialog(null, nome2, "É a pessoa mais alta", JOptionPane.PLAIN_MESSAGE);
			}
			else if (peso2 > peso1 && altura2 < altura1){
				JOptionPane.showMessageDialog(null,  nome2, "É a pessoa mais pesada", JOptionPane.PLAIN_MESSAGE);
				JOptionPane.showMessageDialog(null, nome1, "É a pessoa mais alta", JOptionPane.PLAIN_MESSAGE);
			}
			
		}
		
				
		}

Ficou assim! =)

Abraços :D

Criado 14 de junho de 2010
Ultima resposta 14 de jun. de 2010
Respostas 2
Participantes 2