Hola, buenas tardes necesito apoyo sobre un ejercicio. Debo hacer un rectángulo y rombo de la base y altura que elija, con el rombo es los niveles. Asi mismo, decir su área y su perímetro. Pero tengo problemas con mi código, no sé si todo vaya bien, por la eleccion del caracter sin que sea un numero, al igual de elegir numeros no válidos, como negativos, etc.
Anexo mi código, aquí la mitad y lo que falte a continuación, debido a la excesiva longitud de caracteres que excede lo permitido.
import java.util.Scanner;
public class ClasesyObjetos {
public static void main(String[] args){
Scanner entrada = new Scanner (System.in);
double perim = 0, lado, base, altura, area, simb, alt, nivel;
int num=0, rec=0, rom=0;
Scanner in=new Scanner(System.in);
do{
System.out.println(" Bienvenido ");
System.out.println(" Programa para imprimir figuras");
System.out.println(" 1.-Rectángulo ");
System.out.println(" 2.-Rombo");
System.out.println(" 3.-Salir ");
System.out.println("Seleciona una de las opciones anteriores:");
num = in.nextInt();
switch(num){
case 1:
do{
System.out.println("\n");
System.out.println("Símbolos");
System.out.println("1.-+");
System.out.println("2.-*");
System.out.println("3.-$");
System.out.println("4.-%");
System.out.println("5.-&");
System.out.println("6.-/");
System.out.println("7.-=");
System.out.println("8.-Volver al menú inicial");
System.out.println("Selecciona símbolo de la figura:");
rec = in.nextInt();
switch(rec){
case 1:
System.out.println("\n");
System.out.println("Rectángulo");
System.out.println("Escriba la base:");
base=entrada.nextInt();
while(base<=0){
System.out.println("Entrada inválida, introduzca un numero mayor que 0: ");
base=entrada.nextInt();
}
System.out.println("Escriba la altura:");
altura=entrada.nextInt();
while(altura<=0){
System.out.println("Entrada inválida, introduzca un numero mayor que 0: ");
altura=entrada.nextInt();
}
for (int i=0; i<altura; i++) {
for (int j=0; j<base; j++)
System.out.print("+");
System.out.println("");
}
break;
case 2:
System.out.println("\n");
System.out.println("Rectángulo");
System.out.println("Escriba la base:");
base=entrada.nextInt();
while(base<=0){
System.out.println("Entrada inválida, introduzca un numero mayor que 0: ");
base=entrada.nextInt();
}
System.out.println("Escriba la altura:");
altura=entrada.nextInt();
while(altura<=0){
System.out.println("Entrada inválida, introduzca un numero mayor que 0: ");
altura=entrada.nextInt();
}
for (int i=0; i<altura; i++) {
for (int j=0; j<base; j++)
System.out.print("*");
System.out.println("");
}
break;
case 3:
System.out.println("\n");
System.out.println("Rectángulo");
System.out.println("Escriba la base:");
base=entrada.nextInt();
while(base<=0){
System.out.println("Entrada inválida, introduzca un numero mayor que 0: ");
base=entrada.nextInt();
}
System.out.println("Escriba la altura:");
altura=entrada.nextInt();
while(altura<=0){
System.out.println("Entrada inválida, introduzca un numero mayor que 0: ");
altura=entrada.nextInt();
}
for (int i=0; i<altura; i++) {
for (int j=0; j<base; j++)
System.out.print("$");
System.out.println("");
}
break;
case 4:
System.out.println("\n");
System.out.println("Rectángulo");
System.out.println("Escriba la base:");
base=entrada.nextInt();
while(base<=0){
System.out.println("Entrada inválida, introduzca un numero mayor que 0: ");
base=entrada.nextInt();
}
System.out.println("Escriba la altura:");
altura=entrada.nextInt();
while(altura<=0){
System.out.println("Entrada inválida, introduzca un numero mayor que 0: ");
altura=entrada.nextInt();
}
for (int i=0; i<altura; i++) {
for (int j=0; j<base; j++)
System.out.print("%");
System.out.println("");
}
break;
case 5:
System.out.println("\n");
System.out.println("Rectángulo");
System.out.println("Escriba la base:");
base=entrada.nextInt();
while(base<=0){
System.out.println("Entrada inválida, introduzca un numero mayor que 0: ");
base=entrada.nextInt();
}
System.out.println("Escriba la altura:");
altura=entrada.nextInt();
while(altura<=0){
System.out.println("Entrada inválida, introduzca un numero mayor que 0: ");
altura=entrada.nextInt();
}
for (int i=0; i<altura; i++) {
for (int j=0; j<base; j++)
System.out.print("&");
System.out.println("");
}
break;
case 6:
System.out.println("\n");
System.out.println("Rectángulo");
System.out.println("Escriba la base:");
base=entrada.nextInt();
while(base<=0){
System.out.println("Entrada inválida, introduzca un numero mayor que 0: ");
base=entrada.nextInt();
}
System.out.println("Escriba la altura:");
altura=entrada.nextInt();
while(altura<=0){
System.out.println("Entrada inválida, introduzca un numero mayor que 0: ");
altura=entrada.nextInt();
}
for (int i=0; i<altura; i++) {
for (int j=0; j<base; j++)
System.out.print("/");
System.out.println("");
}
break;
case 7:
System.out.println("\n");
System.out.println("Rectángulo");
System.out.println("Escriba la base:");
base=entrada.nextInt();
while(base<=0){
System.out.println("Entrada inválida, introduzca un numero mayor que 0: ");
base=entrada.nextInt();
}
System.out.println("Escriba la altura:");
altura=entrada.nextInt();
while(altura<=0){
System.out.println("Entrada inválida, introduzca un numero mayor que 0: ");
altura=entrada.nextInt();
}
for (int i=0; i<altura; i++) {
for (int j=0; j<base; j++)
System.out.print("=");
System.out.println("");
}
break;
}
}while(rec!=8);
break;