Java Ejercicios Estructura Condicional 3

Aquí teneis otra entrega de ejercicios básicos con estructura condicional.

Relación Nº 3: Ejercicios 6 y 7

Ejercicio 6: Programa java que lea un carácter por teclado y compruebe si es un dígito numérico (cifra entre 0 y 9).

Vamos a escribir dos soluciones a este ejercicio. 

La primera consiste en comprobar si el carácter es un dígito mediante el método isDigit de la clase Character. Este método devuelve true si el carácter que se le pasa como parámetro es una cifra entre 0 y 9:
/* 
  * Ejemplo de programa con estructura condicional
 * Programa que lea un carácter por teclado y compruebe si es un número
 */

import java.io.*;
public class condicional1_7 {
   public static void main(String[] args) throws IOException {
        char car1;
        System.out.print("Introduzca carácter: ");
        car1 = (char)System.in.read(); //lee un carácter
        if(Character.isDigit(car1)) //utilizamos el método isDigit de la clase Character
           System.out.println("Es un número");
        else
           System.out.println("No es un número");
  }
}

La otra solución es directa y consiste en comprobar si el carácter que se ha leído por teclado es mayor o igual que el carácter 0 y menor o igual que el carácter 9.

// Versión alternativa comparando con
// los caracteres '0' ... '9'


     if(car1>='0' && car1<='9')
           System.out.println("Es un número");
        else
           System.out.println("No es un número");
  
Ejercicio 7: Programa que lea dos números por teclado y muestre el resultado de la división del primer número por el segundo. Se debe comprobar que el divisor no puede ser cero.

/*
 * Ejemplo de programa con estructura condicional

 * Programa que lea dos números por teclado y muestre el resultado
 * de la división del primero por el segundo.
 * Se comprueba que el divisor es distinto de cero.
 */

import java.util.*;
public class condicional1_8 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double dividendo, divisor;
        System.out.print("Introduzca el dividendo: ");
        dividendo = sc.nextDouble();
        System.out.print("Introduzca el divisor: ");
        divisor = sc.nextDouble();
        if(divisor==0)
           System.out.println("No se puede dividir por cero");   
        else{
            System.out.println(dividendo + " / " + divisor + " = " + dividendo/divisor);  
            System.out.printf("%.2f / %.2f = %.2f %n" , dividendo, divisor , dividendo/divisor);
        }
    }
}


3 comentarios:

  1. La solución alternativa no me funcionó en el ejercicio 6
    todos los caracteres, incluyendo los números, los toma como alfabéticos

    Lo mismo me pasó en los ejercicios anteriores con las soluciones alternativas

    ResponderEliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. public static void main(String[] args) {
    // TODO Auto-generated method stub

    String numero = "";
    while (isNumeric(numero)==false){
    numero = JOptionPane.showInputDialog ( "Escriba un valor alfanumerico o numerico" );

    if (isNumeric(numero) == true) {
    System.out.println ("Introdujo el número " + numero); }
    else {
    System.out.println ("Introdujo un caracter del abecedario " + numero); }
    }
    }

    public static boolean isNumeric(String str) {
    return (str.matches("[+-]?\\d*(\\.\\d+)?") && str.equals("")==false);
    }

    ResponderEliminar