Galera…
Fiz uma calculadora que faz conversão de valores.
Este código abaixo é executado quando você seleciona a opção 1 no menu do meu programa:
if ( numero == 1 )
{
System.out.println();
System.out.println("#########################################");
System.out.println();
System.out.println("CONVERSOR 1: DECIMAL PARA HEXADECIMAL");
System.out.println();
System.out.println("Digite o valor Decimal:");
decimal = sc.nextInt();
String hex = Integer.toHexString(decimal);
System.out.println();
System.out.println("O valor " + decimal + " corresponde a [ " + hex + " ] em Hexadecimal.");
System.out.println();
System.out.println("#########################################");
System.out.println();
System.out.println("1 Calcular outro valor");
System.out.println("2 Abrir o menu de conversores");
System.out.println();
System.out.println("3 SAIR");
System.out.println();
System.out.println("Digite o numero da opcao que deseja executar:");
numero2 = sc.nextInt();
while ( numero2 >= 4 || numero2 <= 0 )
{
System.out.println();
System.out.println("#########################################");
System.out.println();
System.out.println("O numero " + numero2 + " nao corresponde a nenhuma opcao.");
System.out.println();
System.out.println("LEMBRE-SE: os numeros sao:");
System.out.println();
System.out.println("1 Calcular outro valor");
System.out.println("2 Abrir o menu de conversores");
System.out.println();
System.out.println("3 SAIR");
System.out.println();
System.out.println("Digite o numero da opcao que deseja executar:");
numero2 = sc.nextInt();
}
while ( numero2 == 1 )
{
System.out.println();
System.out.println("#########################################");
System.out.println();
System.out.println("CONVERSOR 1: DECIMAL PARA HEXADECIMAL");
System.out.println();
System.out.println("Digite o valor Decimal:");
decimal = sc.nextInt();
String hex2 = Integer.toHexString(decimal);
System.out.println();
System.out.println("O valor " + decimal + " corresponde a [ " + hex2 + " ] em Hexadecimal.");
System.out.println();
System.out.println("#########################################");
System.out.println();
System.out.println("1 Calcular outro valor");
System.out.println("2 Abrir o menu de conversores");
System.out.println();
System.out.println("3 SAIR");
System.out.println();
System.out.println("Digite o numero da opcao que deseja executar:");
numero2 = sc.nextInt();
while ( numero2 >= 4 || numero2 <= 0 )
{
System.out.println();
System.out.println("#########################################");
System.out.println();
System.out.println("O numero " + numero2 + " nao corresponde a nenhuma opcao.");
System.out.println();
System.out.println("LEMBRE-SE: os numeros sao:");
System.out.println();
System.out.println("1 Calcular outro valor");
System.out.println("2 Abrir o menu de conversores");
System.out.println();
System.out.println("3 SAIR");
System.out.println();
System.out.println("Digite o numero da opcao que deseja executar:");
numero2 = sc.nextInt();
}
}
if ( numero2 == 2 )
{
System.out.println();
System.out.println("############### CONVERSOR DE VALORES ###############");
System.out.println();
System.out.println(" 1 Decimal para Hexadecimal");
System.out.println(" 2 Hexadecimal para Decimal");
System.out.println(" 3 Decimal para Binario");
System.out.println(" 4 Binario para Decimal");
System.out.println(" 5 Decimal para Octal");
System.out.println(" 6 Octal para Decimal");
System.out.println();
System.out.println(" 9 SAIR");
System.out.println();
System.out.println("Digite o numero da opcao que deseja executar:");
numero = sc.nextInt();
if ( numero == 9 )
{
System.out.println();
System.out.println("#########################################");
System.out.println();
System.out.println(" O PROGRAMA FOI ENCERRADO");
System.out.println();
System.out.println("#########################################");
System.exit(1);
}
while ( numero < 1 || numero > 6)
{
System.out.println();
System.out.println("#########################################");
System.out.println();
System.out.println("O numero " + numero + " nao corresponde a nenhuma opcao.");
System.out.println();
System.out.println("LEMBRE-SE: os numeros sao:");
System.out.println();
System.out.println(" 1 Decimal para Hexadecimal");
System.out.println(" 2 Hexadecimal para Decimal");
System.out.println(" 3 Decimal para Binario");
System.out.println(" 4 Binario para Decimal");
System.out.println(" 5 Decimal para Octal");
System.out.println(" 6 Octal para Decimal");
System.out.println();
System.out.println(" 9 SAIR");
System.out.println();
System.out.println("Digite o numero da opcao que deseja executar:");
numero = sc.nextInt();
if ( numero == 9 )
{
System.out.println();
System.out.println("#########################################");
System.out.println();
System.out.println(" O PROGRAMA FOI ENCERRADO");
System.out.println();
System.out.println("#########################################");
System.exit(1);
}
}
}
if ( numero2 == 3 )
{
System.out.println();
System.out.println("#########################################");
System.out.println();
System.out.println(" O PROGRAMA FOI ENCERRADO");
System.out.println();
System.out.println("#########################################");
System.exit(1);
}
}
Como são 6 opções tive que fazer este mesmo código para as outras 5 opções de conversão do menu, o que deixou o código enoooorme.
Alguém poderia me ajudar a simplificar ele usando apenas for, do while, switch, string e estruturas semelhantes ?
Nada muito complexo… Meu professor não quer que usemos estruturas que ele ainda não ensinou.
Inclusive, o convertohexstring, algo assim, não vou poder usar. Vou ter que fazer para ler o número dec e retornar ele em hex e vice-versa, utilizando somente cálculos como faz no papel mas implementar isso em Java, ou seja: to fudido.
Se alguém puder dar uma luz para algum dos meus problemas, fico muito agradecido! hauehsauhe
Falooou abraços