Dica de programação - JAVA

Olá, Galera!

Venho hoje trazer algumas dicas de programação em linguagem Java.

Vamos lá, nesse post vou considerar que já você já sabe o minimo de Java em outros post colocarei do inicio, vamos tratar de métodos condicionais e velocidade de processamento de alguns deles, recomendo que você não copie e cole o código mas leia e digite, assim poderá absorver melhor o que aqui será abordado.

  Enunciado extraido do Uri Judge.

Leia um valor inteiro entre 1 e 12, inclusive. Correspondente a este valor, deve ser apresentado como resposta o mês do ano por extenso, em inglês, com a primeira letra maiúscula.

Entrada

A entrada contém um único valor inteiro.

Saída

Imprima por extenso o nome do mês correspondente ao número existente na entrada, com a primeira letra em maiúscula.

Exemplos de Entrada        Exemplos de Saída
4                                       April
3                                        March

Link: https://www.urionlinejudge.com.br/judge/pt/problems/view/1052


Primeira Solução:

import java.util.Scanner;


public class Mes {

 public static void main(String[] args) {
   Scanner sc = new Scanner(System.in); // le entrada do teclado
   
   int mes;// cria o inteiro mes
   
   mes = sc.nextInt();// atribui a entrada de sc para mes
   
   switch (mes) { // recebe o mes e vai para o caso conforme a entrada
   case 1:
    System.out.println("January");
    break;
   case 2:
    System.out.println("February");
    break;
   case 3:
    System.out.println("March");
    break;
   case 4:
    System.out.println("April");
    break;
   case 5:
    System.out.println("May");
    break;
   case 6:
    System.out.println("June");
    break;
   case 7:
    System.out.println("July");
    break;
   case 8:
    System.out.println("August");
    break;
   case 9:
    System.out.println("September");
    break;  
   case 10:
    System.out.println("October");
    break;
   case 11:
    System.out.println("November");
    break;
   case 12:
    System.out.println("December");
    break; 
   default:
    break;
   }
 }
}

Segunda Solução:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

public class Mes2_0 {
// adicione o throws NumberFormatException para tratar as exceções
 public static void main(String[] args) throws  NumberFormatException, IOException {

  String Month[] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; // vetor onde iremos buscar os dados
  
  BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));// leitura pelo teclado, mais rapido que o Scanner

  int mes = Integer.parseInt(buffer.readLine()); // Atribui o valor da linha para o inteiro mes, já fazendo a conversão
  
  System.out.println(Month[mes-1]); // mostra na tela o resultado do vetor mes -1, pois o vetor inicia sempre em 0
  
 }
}


Vale Lembrar que nem sempre tamanho de cogido significa maior ou menor tempo de processamento.

No caso acima a segunda solução é mais rápida que a primeira.

Quero abordar aqui também um substituto, para maior parte dos casos, do if/else os popularmente chamados de operadores ternários. O código fica mais bonito e mais eficiente do que o if/else.
Segue abaixo.

IF/ELSE:

If( x == 0){ // se x = 0 faça
       x+= 2; // x = x+2
} else{ // caso contrario faça
    x -= 1; // x = x - 1
}// fim

Operadores :

x = (x==0)? +2 : -1; // se x = 0 faça x+2 senão faça x-1

Bom galera, por hoje é isso, logo mais postarei novas dicas e videos para facilitar...

Valeu e Até a próxima.

Comentários

  1. Sabe resolver esse problema em Falcon C++ ?

    ResponderExcluir
    Respostas
    1. Olá,

      uma das formas em C++ seria assim.

      #include
      #include
      #include

      using namespace std;

      int main(){

      int entrada;
      string vetor[12];

      cin >> entrada;
      vetor[0] = "Janeiro";
      vetor[1] = "Fevereiro";
      vetor[2] = "Março";
      vetor[3] = "Abril";
      vetor[4] = "Maio";
      vetor[5] = "Junho";
      vetor[6] = "Julho";
      vetor[7] = "Agosto";
      vetor[8] = "Setembro";
      vetor[9] = "Outubro";
      vetor[10] = "Novembro";
      vetor[11] = "Dezembro";

      cout << " " << vetor[entrada-1];


      getch();
      return 0;
      }

      espero ter ajudado.

      Excluir

Postar um comentário

Postagens mais visitadas deste blog

Cabelo Rosa com violeta genciana e um resultado surpreendente!

Cabelo Azul com Azul de Metileno e Violeta Genciana

Cabelo Roxo com Violeta Genciana + Bônus desamarelando o loiro