Ajuda com While

5 respostas
S

Boa noite galera… eu fiz um while no meu codigo mais ele fica em loop e nunca termina… alguém pode me ajudar? valeu…
Segue codigo:

try {
String repetir;

do {
			String msg;
			msg = JOptionPane.showInputDialog("Digite o codigo: ").toLowerCase();
			int codigoAProcurar = Integer.parseInt(msg);
			
		Connection connection = DriverManager.getConnection(urlJDBC,
				username, password);

		Statement stmt = connection.createStatement();

		String sql = "SELECT CODIGO, NOME, TELEFONE FROM CLIENTE WHERE CODIGO = "
				+ codigoAProcurar;
		ResultSet rs = stmt.executeQuery(sql);
		
			if (rs.next()) {
				int codigo = rs.getInt("CODIGO");
				String nome = rs.getString("NOME");
				String telefone = rs.getString("TELEFONE");

				System.out.println(codigo + ": " + nome + " (" + telefone
						+ ")");
			} else {
				System.out.println("Cliente nao encontrado!");

			}

			rs.close();
			stmt.close();
			connection.close();

			repetir = JOptionPane.showInputDialog(
					"Deseja procurar outro codigo? ").toLowerCase();
			
		} while (repetir != "N");
	} catch (SQLException e) {
		System.out.println("Ocorreu um erro inesperado!");
	}
}

5 Respostas

gqferreira

sandroh:
Boa noite galera… eu fiz um while no meu codigo mais ele fica em loop e nunca termina… alguém pode me ajudar? valeu…
Segue codigo:

try {
String repetir;

do {
			String msg;
			msg = JOptionPane.showInputDialog("Digite o codigo: ").toLowerCase();
			int codigoAProcurar = Integer.parseInt(msg);
			
		Connection connection = DriverManager.getConnection(urlJDBC,
				username, password);

		Statement stmt = connection.createStatement();

		String sql = "SELECT CODIGO, NOME, TELEFONE FROM CLIENTE WHERE CODIGO = "
				+ codigoAProcurar;
		ResultSet rs = stmt.executeQuery(sql);
		
			if (rs.next()) {
				int codigo = rs.getInt("CODIGO");
				String nome = rs.getString("NOME");
				String telefone = rs.getString("TELEFONE");

				System.out.println(codigo + ": " + nome + " (" + telefone
						+ ")");
			} else {
				System.out.println("Cliente nao encontrado!");

			}

			rs.close();
			stmt.close();
			connection.close();

			[b]repetir = JOptionPane.showInputDialog(
					"Deseja procurar outro codigo? ").toLowerCase();[/b]
			
		} while (repetir != "N");
	} catch (SQLException e) {
		System.out.println("Ocorreu um erro inesperado!");
	}
}</blockquote>

Você está transformando a resposta do usuário para minúsculo mas comparando com “N” maiúsculo. A variável repetir nunca terá um conteúdo maiúsculo.

S

Retirei o .toLowerCase(); mais continua em loop…

Henrique_Moraes

Amigo, tente o seguinte:

while(!repetir.equals("n"));

Pode colocar o toLowerCase()

vlw

S

Agora sim…
Ficou ok…
Valeu Henrique.

gqferreira

Henrique Moraes:
Amigo, tente o seguinte:

while(!repetir.equals("n"));

Pode colocar o toLowerCase()

vlw

Verdade, não tinha reparado que ele estava usando != em vez de equals.

Criado 23 de março de 2012
Ultima resposta 24 de mar. de 2012
Respostas 5
Participantes 3