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ópriadocumentação em:https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html#constructor.detail
System.out.println("Digite o valor em minutos"); 
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