Hola xBag!
Con relación a lo que pide el enunciado del ejercicio te comento que aunque tu programa realiza la tarea requerida, no has cumplido del todo lo que se pide en el enunciado del ejercicio, no has usado el método
substring y en su lugar has usado el método
startsWith. No es que esto este mal pero aparte de que no cumples del todo con el ejercicio, el método
substring el cual no usas es muy útil para este ejercicio y mas adelante te mostrare como usarlo para aumentar la eficiencia de tu programa.
Con relación a tu código en general, te comento lo siguiente.
El nombre de la clase no es muy apropiado, el nombre de una clase debe de ser descriptivo de lo que es o lo que hace. Aunque tal vez solo elegiste un nombre para tu clase sin pensar en esto, es bueno que tengas esto presente siempre que estés buscando un nombre para una clase.
En el método main, tienes la variable local
PalabraEscrita (y todas las demás variables), el nombre de una variable debe de comenzar preferiblemente con letra minúscula, (
palabraEscrita) aunque esto no afecta la funcionalidad del código, si estas usando un standar de programación entre programadores que han convenido que esto debe de ser así en todo código java.
Con relación a tu duda:
Me surgió la duda, puedo hacer que el programa SE DETENGA, en caso de que durante el "For", en la pregunta 3 o 4 o cual sea, yo escriba "Salir" ? Lo intenté y fracasé alguien me ayuda?
Para tu bucle finalizar es necesario que la variable
i alcance un valor mayor a 10, para lograr lo que quieres bastaría con igualar el valor de
i a (un numero mayor que 10) 11 mediante un condicional
if usando como condición que el valor de la variable
palabraEscrita sea igual a el String "Salir".
A continuación dejo un nuevo código creado a partir de tu clase Vereda, con comentarios incluidos en cada cambio y/o mejora.
import java.util.Scanner;
public class AnalizarPalabra
{
public static void main (String [] args)
{
String palabraEscrita = "";
for (int i=0;i<10;i++){//Indicamos el tipo dinámico (int) de i en el mismo bucle for
System.out.println("Introduzca una palabra: ");
Scanner palabra = new Scanner(System.in);
palabraEscrita = palabra.next();
if(!palabraEscrita.equals("salir"))//El operador ! antes de la condición, niega el valor de esta, se leería: Si la palabra escrita NO ES IGUAL a salir.
{
System.out.println("La palabra \"" + palabraEscrita + "\" " + "ha sido introducida");
}
int largo = palabraEscrita.length();
boolean inicio = false;
if(palabraEscrita.substring(0,1).equalsIgnoreCase("a")){inicio = true;}/*Usamos el método subString para analizar la primera letra de la palabra escrita
y usamos el método equalsIgnoreCase(String str); para que el programa ignore diferencia de mayúsculas y minúsculas ("a" o "A")*/
if(palabraEscrita.equals("salir"))//Este condicional finalizaría el bucle en caso de cumplirse, puesto que asignara a "i" un valor mayor que 10.
{
i += 11; System.out.println("\fPrograma finalizado...");//Usar el operador += en esta linea es lo mismo que decir: i = i + 11;
}
else if (largo<5 && inicio){System.out.println("Tiene menos de 5 caracteres y empieza por la letra: " + palabraEscrita.substring(0,1));/*Extraemos
la primera letra de la palabra escrita, podria ser "a" o "A"*/
}else if (largo<5 && !inicio){System.out.println("Tiene menos de 5 caracteres y NO empieza por la letra a/A");//Usamos el operador ! en lugar de == false/true
}else if (largo<=15 && inicio){System.out.println("Tiene entre 5 y 15 caracteres y empieza por la letra: " + palabraEscrita.substring(0,1));
}else if (largo<=15 && !inicio){System.out.println("Tiene entre 5 y 15 caracteres y NO empieza por la letra a/A");
}else if (largo>15 && inicio){System.out.println("Tiene más de 15 caracteres y empieza por la letra: " + palabraEscrita.substring(0,1));
}else if (largo>15 && !inicio){System.out.println("Tiene más de 15 caracteres y NO empieza por la letra a/A");
}
}
}
}
Espero que encuentres algo útil.
Saludos!