A partir desse post vou falar sobre lógica de programação, resolvendo alguns problemas comuns do dia a dia do desenvolvimento. Para esta postagem vou falar sobre Conversão de minutos para horas e minutos.
O problema: (Conversão de minutos para horas e minutos)
O usuário irá digitar seja no console ou em alguma interface, o valor em minutos e o sistema deverá retornar o valor em horas e minutos.
Resolução:
Vamos pensar...
A principio teremos que criar três variáveis (horas,minutos,valorEmMinutosInformado):
int horas = 0,minutos=0,valorEmMinutosInformado=0;
//Em JAVA, existe a possibilidade da declaração
de variáveis em uma linha, caso as mesmas sejam
do mesmo tipo, int.
E uma variável do tipo boolean para controlar a futura iterações,
caso o usuário informe um valor incorreto.
boolean statusDoValor=true;
Após a criação das variáveis iremos instanciar um objeto da classe Scanner para
obtermos o valor passado pelo usuário.
Essa linha serve para avisar ao usuário que já é possível informar o valor.Scanner sc = new Scanner(System.in); //No construtor da classe Scanner, existe um parâmetro que "obriga" para quem for instanciar o objeto deverá passar uma instância de InputStream,
ou outras como: Readable, File e etc. Você pode conferir na própria
documentação em:
https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html#constructor.detail
System.out.println("Digite o valor em minutos");
A estrutura de repetição do while servirá para no caso do usuário informar qualquer valor diferente de um número válido (e.x: número por extenso), irá ser lançado uma exceção, e a execução será abortada, e para que o usuário não necessite executar o código novamente, colocamos o código dentro do try..catch (Tratador de exceções).while(statusDoValor){
try{
Essa linha abaixo irá ler o valor passado e atribuir a váriável
valorEmMinutosInformado.
valorEmMinutosInformado = sc.nextInt();
Vou precisar fazer uma "cópia" do valor em valorEmMinutosInformado para a variável minutos, para que no final eu consiga informar o tempo que o usuário passou via console.
minutos=valorEmMinutosInformado;
A cada 60 minutos que equivale a 1 hora, a variável horas é incrementada e a variável minutos é reduzida de 60 em 60, até o valor dela ser menor que 60, ou seja, menor que 1 hora.
while(minutos>=60){
horas++;
minutos-=60;
}
statusDoValor=false;
}catch(InputMismatchException e){
System.out.println("Valor informado está incorreto. Digite novamente");
valorErrado=true;
sc.next();
}
}
System.out.println(valorEmMinutosInformado+" minutos equivale a "
+horas+" horas e "+minutos+"minutos");
}
Obs: Não se esqueçam dos imports para não apresentar erro de compilação.
" import java.util.Scanner;
import java.util.InputMismatchException; "
Esse foi um de uma série de 5 posts sobre lógica de programação. Em breve vou postar o segundo. Caso você queira contribuir com esse código ou outros, tenho ele no meu github. É só clicar no link abaixo:
Projeto de Lógica de programaçãoimport java.util.InputMismatchException; "
Até mais...
Nenhum comentário:
Postar um comentário