Java Ejercicios iniciales 3. Operador Condicional ? :

Relación Nº 3: Ejercicios 5, 6 y 7

En esta entrada vamos a ver tres ejemplos de utilización del operador condicional ? :
Se trata de usar el operador condicional en lugar de la instrucción condicional if para mostrar por pantalla un mensaje u otro dependiendo de una condición.

Ejercicio básico inicial 5
Escribe un programa java que declare una variable A de tipo entero y asígnale un valor. A continuación muestra un mensaje indicando si A es par o impar. Utiliza el operador condicional ( ? : ) dentro del println para resolverlo.
Si por ejemplo A = 14 la salida será
14 es par
Si fuese por ejemplo A = 15 la salida será:
15 es impar
/*
 * Solución Ejercicio Básico Inicial 5
 */
package bi5;
public class Main {
    public static void main(String[] args) {                                                                      
        int A = 15;
        System.out.println(A + (A%2==0 ? " es par " : " es impar "));                                             
    }
}

Ejercicio básico inicial 6
Escribe un programa java que declare una variable B de tipo entero y asígnale un valor. A continuación muestra un mensaje indicando si el valor de B es positivo o negativo. Consideraremos el 0 como positivo. Utiliza el operador condicional ( ? : ) dentro del println para resolverlo.
Si por ejemplo B = 1 la salida será
1 es positivo
Si fuese por ejemplo B = -1 la salida será:
-1 es negativo
/*
 * Solución Ejercicio Básico Inicial 6
 */
package bi6;
public class Main {
    public static void main(String[] args) {                                                                      
       int B = -1;
       System.out.println(B + (B >= 0 ? " es positivo " : " es negativo "));                                      
    }
}

Ejercicio básico inicial 7
Escribe un programa java que declare una variable C de tipo entero y asígnale un valor. A continuación muestra un mensaje indicando si el valor de C es positivo o negativo, si es par o impar, si es múltiplo de 5, si es múltiplo de 10 y si es mayor o menor que 100. Consideraremos el 0 como positivo. Utiliza el operador condicional ( ? : ) dentro del println para resolverlo.
Si por ejemplo C = 55 la salida será
55 es positivo
55 es impar
55 es múltiplo de 5                                                                                               
55 no es múltiplo de 10                                                                                           
55 es menor que 100
/*
 * Solución Ejercicio Básico Inicial 7
 */
package bi7;
public class Main {
    public static void main(String[] args) {
       int C = 55;
       System.out.println(C + (C >= 0 ? " es positivo " : " es negativo "));                                      
       System.out.println(C + (C%2== 0 ? " es par " : " es impar "));
       System.out.println(C + (C%5== 0 ? " es múltiplo de 5 " : " no es múltiplo de 5 "));
       System.out.println(C + (C%10== 0 ? " es múltiplo de 10 " : " no es múltiplo de 10 "));                     
       System.out.println(C + (C>100 ? " es mayor que 100 " : " es menor que 100 "));
    }
}

34 comentarios:

  1. ahi es ejemplo para una sola variable me puedes decir como acerle para k kada vez k ingrese un nuevo numero me diga eso del ejercico 7 sin tener k cambiar la variable

    ResponderEliminar
    Respuestas
    1. samuel merchan torres2 de mayo de 2019, 4:12

      Scanner sc = new Scanner(System.in);
      System.out.println("Ingrese un número");
      int a = sc.nextInt();
      o la forma mas fácil.
      int a = Integer.parseInt(JOptionPane.showInputDialog("Ingrese un número"));

      Eliminar
  2. tendrias que utilizar una estructura do while, si continuas haciendo ejercicios lo explican, seria asi mas o menos:
    sigue con los ejercicios animo !!

    import java.util.Scanner;


    public class prueba1 {



    public static void main(String[] args) {

    int C;

    do{

    System.out.print("Introduce un numero: ");
    Scanner introPorTec;
    introPorTec = new Scanner (System.in);
    C = introPorTec.nextInt();

    System.out.println(C + (C >= 0 ? " es positivo " : " es negativo "));
    System.out.println(C + (C%2== 0 ? " es par " : " es impar "));
    System.out.println(C + (C%5== 0 ? " es múltiplo de 5 " : " no es múltiplo de 5 "));
    System.out.println(C + (C%10== 0 ? " es múltiplo de 10 " : " no es múltiplo de 10 "));
    System.out.println(C + (C>100 ? " es mayor que 100 " : " es menor que 100 "));
    } while (C != 0);
    }
    }

    ResponderEliminar
  3. Perdon compañero espero que sigan leyendo estas pag, quisiera agregar mi granito de arena. Apenas voy aprendiendo como ustedes y se me ha ocurrido que para los ejemplos se use el metodo Random(). Les dejo la forma en como yo realice el ultimo ejercicio, espero les ayude.

    import java.util.Random;

    public class EjerBas7
    {
    public static void main(String[] args)
    {
    /** muestra una variable sus siguientes caracteristicas
    * si es positivo o negativo
    * si es par o impar
    * si es multiplo de 5
    * si es multiplo de 10
    * si es mayor o menor que 100
    * se considerara 0 como positivo y se debe de utilizar ? : dentro de un println para resolver el problema
    */

    int a = 0, lim = 200;
    Random r = new Random();

    a = r.nextInt(lim);

    System.out.println(a + (a >= 0 ? " es positivo" : " es negativo"));
    System.out.println(a + (a % 2 == 0 ? " es par" : " es impar"));
    System.out.println(a + (a % 5 == 0 ? " es multiplo de 5" : " no es multiplo de 5"));
    System.out.println(a + (a % 10 == 0 ? " es multiplo de 10" : " no es multiplo de 10"));
    System.out.println(a + (a < 100 ? " es menor que 100" : " es mayor que 100"));

    }
    }

    Lo unico nuevo el el metodo Random() que se encuentra dentro de la libreria "java.util"
    de ahi le fije un limite = 200 (lim=200) ya que me puede dar cantidades de millones. A esa
    variable de tipo Random se la asigne a la variable "int a" y todo lo demas es igual a el ejercicio.

    Espero que les alla ayudado con mi aporte. Gracias por los ejercicios.

    ResponderEliminar
    Respuestas
    1. yon o use lim () explicitamente en elcodigo aunque como quiera pongo el limite dentro del random directo con numero.
      saludos


      import static java.lang.System.out ;
      import java.util.Random;
      class EjercicioBasico7 {
      public static void main (String [] args){
      int c=new Random() . nextInt(200);
      out.println(c + ((c>=0) ? " es positivo" : " es negativo"));
      out.println(c + ((c % 2 == 0) ? " es par" : " es impar" ));
      out.println(c + ((c % 5 == 0) ? " es multiplo de 5" : " no es multiplo de 5"));
      out.println(c + ((c % 10 == 0 ) ? " es multiplo de 10" : " no es multiplo de 10" ));
      out.println(c + ((c>100) ? " es mayor que 100" : " es menor que 100"));

      }
      }

      Eliminar
    2. buen aporte amigo pero creo que los ejercicios van paso a paso por eso no se han usado objetos, en ese caso podria usarse un bufferedreader para que el usuario teclee un valor y le haga el calculo del numero elegido

      Eliminar
    3. Gracias por los aportes. Como dice dernivaro, se trata de ejercicios iniciales básicos en java para empezar a aprender el lenguaje por eso no se han usado objetos ni otras clases cono Scanner para leer por teclado, estos conceptos se van introduciendo más adelante.

      Eliminar
  4. Compañeros soy muy nuevo en Java y estoy estudiando todos estos ejercicios, la pregunta es, que significan los : (2 puntos), es como el ELSE del IF?.... ejemplo: haga la siguiente condición : haga lo otro.
    Gracias por la ayuda, buen día...

    ResponderEliminar
    Respuestas
    1. El funcionamiento es similar a:
      if(condicion) sentencia1 else sentencia2.
      En lugar de eso se escribe:
      condicion ? sentencia1: sentencia2
      Si se cumple la condición se ejecuta sentencia1. Si no se cumple se ejecuta sentencia2.

      Eliminar
    2. Amiguito, yo aplique una pequeña variable a este tema, espero que este bien, ya que como algunos estoy aprendiendo esto de forma autodidacta xD

      package comparardatos;


      public class comparardatos {

      public static void main(String[] args) {
      int A=101;
      System.out.println("el numero "+A+" es: "+(A>=0? "es positivo":"es negativo"));
      System.out.println("el numero "+A+" es: "+(A%2==0? "es par":"es impar"));
      System.out.println("el numero "+A+" es: "+(A%5==0? " es multiplo de 5":"no es multiplo de 5"));
      System.out.println("el numero "+A+" es: "+(A%10==0? "es multiplo de 10":"no es multiplo de 10"));

      if (A==100){

      System.out.println("el numero es " + A);


      }
      else
      System.out.println("el numero "+A+" es: "+(A<100? "es menor que 100":"es mayor que 100"));
      }



      }

      espero que sirva de algo, espero sus comentarios

      Eliminar
  5. agrengando el do while

    import java.util.Scanner;
    import java.io.*;
    public class eje7 {

    public static void main (String []args)throws IOException{
    int c;
    char car1;

    Scanner = new Scanner(System.in);

    do{scanner
    System.out.println("Dame un numero");
    c=scanner.nextInt();
    if(c>0){


    System.out.println(c+(c>0 ? " Es positivo" : " Es negativo"));
    System.out.println(c+(c%2==0 ? " Es par" : " Es impar"));
    System.out.println(c+(c%5==0 ? " Es multiplo de 5" : " No es multiplo de 5"));
    System.out.println(c+(c%10==0 ? " Es multiplo de 10" : " No es multiplo de 10"));
    System.out.println(c+(c>100 ? " Es mayor que 100" : " Es menor que 100"));
    }
    else {
    System.out.println("Ingrese nuevamente el numero");
    }

    System.out.println("Desea repetir el proceso con un numero diferente S/s:");
    car1=(char)System.in.read();
    }while(car1=='S'|| car1=='s');

    }
    }

    ResponderEliminar
  6. Sin do-while de rápido


    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.IOException;

    public class Problema7 {

    private int varC;

    public Problema7(){}

    public void setVarC(int varC){this.varC = varC;}

    public int getVarC(){return varC;}

    public static void main(String args[]) throws IOException {
    Problema7 var = new Problema7();
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    System.out.printf("Programa evaluador de números xD"
    + "\nIngresa un número para evaluar: ");
    var.setVarC(Integer.parseInt(br.readLine()));

    System.out.println((var.getVarC() >= 0 ? "El Número " + var.getVarC() + " es positivo" : "El Número " + var.getVarC() + " es negativo"));
    System.out.println((var.getVarC() % 2) != 0 ? "El Número " + var.getVarC() + " es impar" : "El Número " + var.getVarC() + " es par");
    System.out.println((var.getVarC() % 5) != 0 ? "El Número " + var.getVarC() + " no es multiplo de 5" : "El Número " + var.getVarC() + " es multiplo de 5");
    System.out.println((var.getVarC() % 10) != 0 ? "El Número " + var.getVarC() + " no es multiplo de 10" : "El Número " + var.getVarC() + " es multiplo de 10");
    System.out.println((var.getVarC() > 100 ? "El Número " + var.getVarC() + " es mayor que 100" : "El Número " + var.getVarC() + " es menor que 100"));
    }
    }

    ResponderEliminar
  7. Alguien me ayuda con este ejercicio please
    *Diseñe un programa que permita leer un numero entero positivo y luego mostrar:
    a).- Listado de dígitos y números que son Primos.
    b) .- Los resultados de a), mostrarlos como un numero
    c).- Según b) mostrarlo en forma invertida(al revés)

    ResponderEliminar
  8. Hola, no entiendo eso del listado de digitos, me podrias dar un ejemplo de eso o explicarlo?

    Suena interesante ese programa y ya me propuse resolverlo jeje, pero no encuentro lo del listado de digitos y es una gran confucion.... :|

    Saludos

    ResponderEliminar
  9. Esta es una forma mas fácil de entender el ejercicio 7

    public class Condicionales {
    public static void main(String[]arg){
    int A=55,Y;

    Y=A%2;
    if (Y==0){
    System.out.println("El valor "+A+ " de a es par");
    }
    else {
    System.out.println("El valor "+A+ " es impar");
    }
    if(Y>=0){
    System.out.println("El valor "+A+ " es positivo");
    }
    else{
    System.out.println("El valor "+A+ " es negstivo");
    }
    if(Y<100){
    System.out.println("El valor "+A+ " es menor de 100");
    }
    else{
    System.out.println("El valor "+A+ " es mayor de 100");
    }
    Y=A%5;
    if (Y==0){
    System.out.println("El valor "+A+ " es multiplo de 5");
    }
    else {
    System.out.println("El valor "+A+ " no es multiplo de 5");
    }
    Y=A%10;
    if (Y==0){
    System.out.println("El valor "+A+ " es multiplo de 10");
    }
    else {
    System.out.println("El valor "+A+ " no es multiplo de 10");
    }
    }

    }

    ResponderEliminar
    Respuestas
    1. Es cierto, pero se trata de resolverlo usando el operador condicional que es equivalente a usar el if

      Eliminar
  10. Confeccionar un programa que valide los niveles de seguridad en la creación de claves.
    Para ello el programa debe solicitar ingresar una clave al usuario, ésta se debe validar según los siguientes niveles de seguridad, para cada uno de ellos utilizar métodos.
    El programa principal debe llamara los métodos validadores y esto deben devolver una respuesta a la llamada.
    Niveles:
    1.- El largo de la clave que se desea crear debe ser mayor o igual a 6 caracteres, en caso contrario enviar un mensaje “clave con bajo nivel de seguridad”, debe permitir volver a ingresar una nueva clave.
    2.- Si el largo de la clave es mayor o igual a 6 caracteres, se debe validar que la clave comience con una letra mayúscula. Si no es mayúscula debe enviar un mensaje “Clave debe comenzar con Mayúscula” y volver a solicitar una nueva clave.
    3.- Si la clave comienza con mayúscula, se debe validar que contenga un número en cualquier posición en la clave. Si no contiene un número enviar un mensaje “clave debe tener un número en cualquier posición de la clave” debe solicitar ingresar una nueva clave.
    4.- Si se cumplen todas las validaciones anteriores, debe enviar un mensaje “Clave Creada con Alto Nivel de Seguridad”, el programa debe terminar.

    ResponderEliminar
  11. yo el 1°Ejercicio lo hice de esta manera :que el usuario ingrese un numero cualquiera por la consola :esta bien ?

    import java.util.*;
    public class Ejer5 {
    public static void main(String[] args) {

    Scanner entrada=new Scanner(System.in);

    int A=entrada.nextInt();//Introduce en la consola el numero
    //int A=0;(*OPCIONAL )

    //if(A%2==0){
    /*System.out.println( " Es par " );
    }else{
    System.out.println("Es Impar " );
    }
    */
    System.out.println(A%2==0 ? "Es par" : "Es impar"); //Sustituye a la condicion IF(? :)





    }
    }

    ResponderEliminar
  12. ayuda por favor:
    calcular dos numeros(a y b),crear un programa orientado a objetos que muestre las operaciones basicas de 2 numeros dados por el usuario con b diferente de 0.

    public int suma(){
    return(getA() + getB());

    }

    ResponderEliminar
  13. elaborar un algoritmo que mediante la instrucción random genere 10 números del 10 al 30 diferentes almacenar en un arreglo y ordenarlos. con los numeros que se genero y fueron repetidos, mueste la sumatoria
    ¿quien me ayuda con estooo plisss urgente

    ResponderEliminar
  14. public static void main(String[] args) {
    Scanner entrada = new Scanner (System.in);

    int n;

    System.out.print("Ingresa un numero: ");
    n=entrada.nextInt();

    if(n%2==0){
    System.out.println("el numero "+n+" es par");
    }
    else{
    System.out.println("el numero "+n+" es impar");
    }
    }

    ResponderEliminar
    Respuestas
    1. El ejercicio es correcto. Es la otra forma de resolverlo. De esta forma estás utilizando una condición if en lugar de usar el operador condicional ? :

      Eliminar
  15. Buenas. Muy buena la página. Sólo un pequeño apunte: en el ejercicio 7 pides que se evalúe si la variable "es mayor o menor que 100". De la manera en que lo resolviste, al almacenar 100 en la variable el condicional te dara false, por lo que te imprimirá: "100 es menor que 100 " (lo cual no tiene mucho sentido ja ja). Lo que hice yo para que no suceda eso fue:

    if(C != 100) {

    System.out.print(C +
    (resultado = (C > 100) ? " es mayor que 100." : " es menor que 100."));

    } else {


    }

    ResponderEliminar
    Respuestas
    1. Tienes razón! Buen aporte. Para no dejar el else vacío puedes mostrar un mensaje indicando que el valor de la variable es igual a 100.

      Eliminar
  16. como hago que me salga numero random negativo?

    ResponderEliminar
  17. -Introducir un numero por teclado. Que nos diga si es par o impar.

    ResponderEliminar
  18. me pueden ayudar con este codigo
    realiza el código fuente del siguiente ejercicio en java netbeans, recuerda que debes hacer joptionpane mostrar todos los números múltiplos de 10 que sean mayores de 100. utilizar el operador unario ? : contar cuantos números cumplen la condición y cuantos no la cumplen.el rango a utilizar sera de 0 al 1000

    ResponderEliminar
  19. Si x, y, z son variables de tipo double con valores x= 88, y = 3.5, z = -5.2,
    determina el valor de las siguientes expresiones aritméticas. Obtén el resultado de cada
    expresión con un máximo de cuatro decimales.
    a) x + y + z b) 2 * y + 3 * (x – z)
    c) x / y d) x % y
    e) x / (y + z) f) (x / y) + z
    g) 2 * x / 3 * y h) 2 * x / (3 * y)
    i) x * y % z j) x * (y % z)
    k) 3 * x – z – 2 * x l) 2 * x / 5 % y
    m) x - 100 % y % z n) x - y - z * 2
    COMO SE HACE ESTE XFA

    ResponderEliminar
  20. Modificar este ejercicio para que admita enteros y decimales y 6
    materias.
    //Ejemplo 2 Calcular la nota final de una materia
    //Declarar variables
    String nombre_alumno;
    double nota1;
    double nota2;
    double nota3;
    double evaluacion_final;
    //Invocación del método de la clase
    Scanner entrada = new Scanner(System.in);
    //leer el nombre
    System.out.println("Escriba su nombre: " );
    nombre_alumno= entrada.nextLine(); // tener en cuenta el tipo de campo
    System.out.println("Digite nota primer corte: " );
    nota1= entrada.nextDouble(); // tener en cuenta el tipo de campo
    System.out.println("Digite nota segundo corte: " );
    nota2= entrada.nextDouble(); // tener en cuenta el tipo de campo
    System.out.println("Digite nota tercer corte: " );
    nota3= entrada.nextDouble(); // tener en cuenta el tipo de campo
    evaluacion_final=((nota1+nota2+nota3)/3);
    System.out.println("La nota definitiva de :" + nombre_alumno +" " + "es" +" "+"de" +
    evaluacion_final );
    Y ESTE COMO

    ResponderEliminar