elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Duda_con condicion if
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda_con condicion if  (Leído 2,255 veces)
Tuplado

Desconectado Desconectado

Mensajes: 43


Ver Perfil
Duda_con condicion if
« en: 27 Diciembre 2012, 14:42 pm »

Hola buenas tardes.

Estoy haciendo un emulador de cajero con Java y me ha surgido una duda en un condicional if dentro de un método.

Me explico mejor entro por consola un numero, lo transformo a String y calculo la longitud de la String y me da un numero, según el tamaño de la misma.

Efectuo if (cadena == 20) // y no me cumple esta condición.

Adjunto los dos archivos el Main, y el de los metodos.

METODO MAIN
=========

Código:
package cuenta;

public class Cuenta {
    public static String name;
    public static String convert;
    public static long account;  
    

    // METODO MAIN
    public static void main(String[] args) {
      // INSTANCIA DEL CONTRUCTOR DATOS  
      CuentaAcciones datos = new CuentaAcciones(name, account,convert);  
      datos.introducirNombre(name);
      datos.introducirCuenta(account);
}
        
    }

CLASE DE LOS METODOS
================

Código:
package cuenta;

import javax.swing.JOptionPane.*;
import java.awt.Toolkit;
import java.util.InputMismatchException;
import java.util.Scanner;

public class CuentaAcciones {  // CLASE PRINCIPAL

    // ATRIBUTOS DE LA CLASE
    private long cuenta;
    private String convierteNumeroCadena;
    private String nombre;


    // CONSTRUCTOR DE DATOS BANCARIOS
    public CuentaAcciones(String nombre, long cuenta, String convierteNumeroCadena){
        this.nombre = nombre;
        this.cuenta = cuenta;
        this.convierteNumeroCadena = convierteNumeroCadena;
    }
  
// METODOS    
void introducirNombre(String nombre){
    Scanner teclado = new Scanner(System.in); // CAPTURA DEL TECLADO    
// DECLARACION DE VARIABLE TIPO STRING
boolean esCadena = false; // OBLIGA A ENTRAR AL BUCLE WHILE

while (esCadena==false){ // BUCLE WHILE

 // IMPRIME NOTAS ACLARATORIAS PARA EL USUARIO  
 System.out.println("    INSTRUCCIONES DE USO"       );
 System.out.println("-------------------------------");
 System.out.println("_El nombre va sin acentos y sin ");
 System.out.println(" sin excederse de 15 caracteres ");
 System.out.println("-------------------------------\n");
 
 // IMPRIME DATOS BANCARIOS
 System.out.println("=======================" );  
 System.out.println("*** DATOS BANCARIOS ***" );
 System.out.println("=======================" );
 
 // NOMBRE DEL USUARIO
 System.out.print("Introduzca su nombre: ");
 nombre=teclado.next();

 // (MATCHES)INCLUYE LETRAS MAYUSCULAS Y MINUSCULAS Y ESPACIOS EN BLANCO
 // Y LA LONGITUD DE CADENA NO PUEDE SER SUPERIOR A 26 CARACTERES
if (nombre.matches("[[a-z]A-Z]*") && (nombre.length() <= 15)){
  System.out.println("Hola "+nombre);
  esCadena = true; // SALE DEL BUCLE
}
      
else{
    System.err.println("¡Error al introducir el nombre!"); // SALIDA POR CONSOLA
    Toolkit.getDefaultToolkit().beep();  // ESTO GENERA UN BEEP
  esCadena = false; // SE MANTIENE EN EL BUCLE
}

}
    
}
void introducirCuenta(long cuenta){
 boolean esNumero = false;  
while (esNumero==false){
    
try{
    Scanner tecladoCuenta= new Scanner(System.in);
    System.out.println("[ENTIDAD ] [OFICINA] [DIGITOS DE CONTROL] [Nº CUENTA]");
    System.out.println("[4 DIGIT ] [4 DIGIT] [     2 DIGIT      ] [10 DIGIT ]");
    System.out.print("Introduzca su numero de cuenta bancaria: ");
    cuenta=tecladoCuenta.nextLong();
    
        this.convierteNumeroCadena = String.valueOf(cuenta);
        System.out.println(convierteNumeroCadena.length());
        long cadena = convierteNumeroCadena.length();
        
    if (convierteNumeroCadena.length() == 20){ // NO SE PQ NO SE CUMPLE ESTO  
      esNumero = true;
      System.out.println("Su numero de cuenta es: "+this.convierteNumeroCadena);
    }
    else{
      System.err.println("¡Error al introducir el numero de cuneta!"); // SALIDA POR CONSOLA
      Toolkit.getDefaultToolkit().beep();  // ESTO GENERA UN BEEP
      esNumero = false;
    }
}

catch (InputMismatchException e)
{
    System.err.println("¡Error al introducir el numero de cuneta!"); // SALIDA POR CONSOLA
    Toolkit.getDefaultToolkit().beep();  // ESTO GENERA UN BEEP
    esNumero = false;
}
}}}


« Última modificación: 27 Diciembre 2012, 16:01 pm por Tuplado » En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Duda_con condicion if
« Respuesta #1 en: 27 Diciembre 2012, 17:26 pm »

Utiliza BigInteger en lugar de long.

Código
  1. import java.math.BigInteger;

Felices Fiestas.

Por cierto es cuenta no cuneta xD


« Última modificación: 28 Diciembre 2012, 01:09 am por Darhius » En línea

abc
Tuplado

Desconectado Desconectado

Mensajes: 43


Ver Perfil
Re: Duda_con condicion if
« Respuesta #2 en: 28 Diciembre 2012, 14:58 pm »

Sii ya me di cuenta, gracias, mira lo voy hacer con String

Felices Fiestas a tí también.
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Duda_con condicion if
« Respuesta #3 en: 28 Diciembre 2012, 17:01 pm »

Es lo que te iba a sugerir (usar String) por el caso de los números de cuenta que inician con "0" pero pensé que tenías tus razones para utilizar número entero.


Saludos
En línea

abc
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con php Condicion de session « 1 2 »
PHP
alexkof158 15 11,811 Último mensaje 27 Noviembre 2009, 22:10 pm
por [u]nsigned
No me sale INNER JOIN con condición
Bases de Datos
javirk 3 3,124 Último mensaje 5 Abril 2012, 20:49 pm
por Runex
Duda en una condición con return « 1 2 »
Programación C/C++
Blaster 10 5,602 Último mensaje 28 Junio 2013, 12:40 pm
por eferion
Un if realmente se lee cuando la condición es falsa? « 1 2 3 »
Programación General
z3nth10n 23 10,873 Último mensaje 9 Octubre 2013, 01:55 am
por rir3760
como poner condicion php
PHP
General Dmitry Vergadoski 3 2,012 Último mensaje 23 Diciembre 2013, 13:32 pm
por #Aitor
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines