Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Problema con estructura if

Buenas tardes estoy empezando en esto de java y estoy realizando ejercicios con estructuras condicionales, tengo un ejercicio el cual debo verificar si 2 caracteres son minusculas mi problema es que ya lo he realizado de todas las formas y al momento de ejecutar se "salta" por decirlo asi la condicion del if y solamente me envía a la condición de else automaticamente...cual es mi error...gracias de antemano adjunto el codigo.

package proyecto1;
import java.util.Scanner;
public class estructura_condicional {

public static void main(String[]args){

char a,b;

Scanner num=new Scanner(System.in);
System.out.println("ingrese primer caracter:");
a=num.next().charAt(0);
System.out.println("ingrese segundo caracter:");
b=num.next().charAt(0);
if(a>='z' && a<='a'){
if(b>='z' && b<='a'){
System.out.println("son minusculas");
}
}
else{
System.out.println("no son minusculas");
}
}
}

junio 18, 2016 | Registered Commenterexcel77

A cada caracter le corresponde un número. La letra A mayúscula, por ejemplo, tiene el número 65. En el primer if, tú lo que haces es checar si la variable a es mayor al número que correspode a la letra 'z', cuando lo que debiste hacer era ver si es mayor que la letra 'a' y menor que la letra 'z'; lo mismo que b. Y no era necesario meter el segunado if dentro del bloque del primero, porque al else sólo le corresponde el primer if, así que si éste era verdadero y el siguiente no, no se ejecutaría el código del else. Todo era checarlo en una misma condición.


if (a >= 'a' && a <= 'z' && b >= 'a' && b <= 'z')
System.out.println("son minúsculas");
else
System.out.println("no son minúsculas");

Otra nota, el hecho de que el if resulte ser falso, no significa que sean mayúsculas las entradas por el escáner. Aunque creo ya lo tenías en cuanta, ya que no dice "son mayúsculas" sino "no son minúsculas", sólo lo puntualizo.

junio 19, 2016 | Registered Commenterangelns

es verdad no me di cuenta de eso... muchas gracias .

junio 19, 2016 | Registered Commenterexcel77

Lo que ya existe en el JDK, no es necesario inventarlo de nuevo:

https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html#isLowerCase-char-

Un ejemplo de uso:

http://www.tutorialspoint.com/java/lang/character_isuppercase.htm

junio 19, 2016 | Registered Commenterchoces

con el jdk se facilitara esto ya no seria necesario construirlo
https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html#

julio 4, 2016 | Unregistered CommenterArturo

Observando tu codigo creo que la
Mejor forma de de tu codigo seria la siguiente
package proyecto1;
import java.util.Scanner;
public class estructura_condicional {

public static void main(String[]args){

char a,b;

Scanner num=new Scanner(System.in);
System.out.println("ingrese primer caracter:");
a=num.next().charAt(0);
System.out.println("ingrese segundo caracter:");
b=num.next().charAt(0);
if(a>='z' && a<='a'){

System.out.println("son minusculas");
}
else{
System.out.println("no son minusculas");
}
}
}

julio 6, 2016 | Unregistered CommenterMartha Alcala