Foro sobre Java SE > Problema con estructura if
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.
es verdad no me di cuenta de eso... muchas gracias .
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
con el jdk se facilitara esto ya no seria necesario construirlo
https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html#
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");
}
}
}
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");
}
}
}