Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/03/2013, 11:35
rufi88
 
Fecha de Ingreso: noviembre-2012
Ubicación: Adra
Mensajes: 36
Antigüedad: 12 años
Puntos: 0
Metodos boolean

Tengo el siguiente ejercicio propuesto y varias preguntas sobre el mismo:

Código java:
Ver original
  1. public class Comprobaciones {
  2.     public boolean esSimetrico(String cadena){
  3.     //  boolean esSimetrico=false;
  4.         for(int i=0; i<cadena.length(); i++)
  5.             if(cadena.charAt(i)!=cadena.charAt(cadena.length()-i-1))
  6.                 return false;  
  7.         return true;
  8.     }
  9.    
  10.     public boolean esCapicua(int numero){
  11.         return esSimetrico(numero+"");
  12.     }
  13.    
  14.     public boolean esPrimo(int numero){
  15.         for(int i=1; i<numero/2; i++)
  16.             if(numero % i==0)
  17.                 return false;
  18.         return true;
  19.     }
  20.    
  21.     public boolean esAntiguo(int numero){
  22.         if(numero >= 1900)
  23.             return false;
  24.         return true;
  25.     }
  26.    
  27.     public boolean esPar(int numero){
  28.         if(numero % 2!=0)
  29.             return false;
  30.         return true;
  31.     }
  32.    
  33.     public boolean esPositivo(int numero){
  34.         if(numero < 0)
  35.             return false;
  36.         return true;
  37.     }
  38.    
  39.     public boolean esBisiseto(int numero){
  40.         if (numero % 4==0 && numero % 100!=0 || numero % 400==0)
  41.             return true;
  42.         return false;          
  43.     }
  44. }

Código java:
Ver original
  1. import java.util.Scanner;
  2.  
  3. public class VerComprobaciones {
  4.     public static void main(String args []){
  5.         Scanner sc=new Scanner(System.in);
  6.        
  7.         System.out.println("Introduce un número entero:");
  8.         int numero=sc.nextInt();
  9.         Comprobaciones co=new Comprobaciones();// creo el objeto co necesario para usar el método co.esCapicua()
  10.         System.out.println((co.esCapicua(numero)?"Es":"No es")+" capicua.");
  11.         System.out.println((co.esAntiguo(numero)?"Es":"No es")+" un número antiguo.");
  12.         System.out.println((co.esBisiseto(numero)?"Es":"No es")+" bisiesto.");
  13.         System.out.println((co.esPar(numero)?"Es":"No es")+" par.");
  14.         System.out.println((co.esPositivo(numero)?"Es":"No es")+" positivo.");
  15.         System.out.println((co.esPrimo(numero)?"Es":"No es")+" primo.");
  16.     }
  17. }

1. En el método esSimetrico() en la línea 3 le asigna el valor false, he probado a comentarlo y el programa funciona bien, ¿es error del libro o yo no lo he comprobado bien?

2. En el método esPar() yo he usado un if pero el libro simplemente usa un return numero % 2==0. Obviamente entiendo que esa linea sustituye a un if pero no soy capaz de comprender el proceso que sigue, si alguien puede explicarmelo seria de gran ayuda para continuar el libro.

3. En el segundo documento el libro utiliza la expresion nombreMetodo()?"Es":"No es" en cada println. Es la primera vez que veo esta nomenclatura y no estoy familiraizado con ella, quisiera que me la explicaseis tambien.