\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{fmarson} \pdfinfo{ /Title (fundamentos-de-java-referencia-rapida-.pdf) /Creator (Cheatography) /Author (fmarson) /Subject (Fundamentos de Java - Referência Rápida - Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{86AFAD} \definecolor{LightBackground}{HTML}{F7FAF9} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Fundamentos de Java - Referência Rápida - Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{fmarson} via \textcolor{DarkBackground}{\uline{cheatography.com/132434/cs/38435/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}fmarson \\ \uline{cheatography.com/fmarson} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 7th February, 2024.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{2} \begin{tabularx}{8.4cm}{x{1.08 cm} x{1.368 cm} x{2.376 cm} x{2.376 cm} } \SetRowColor{DarkBackground} \mymulticolumn{4}{x{8.4cm}}{\bf\textcolor{white}{Tipos de dados Primitivos}} \tn % Row 0 \SetRowColor{LightBackground} \{\{ac\}\}{\bf{Tipo}} & \{\{ac\}\}{\bf{Tamanho}} & \{\{width=35\}\}\{\{ac\}\}{\bf{Intervalo/Valores}} & \{\{ac\}\}{\bf{Exemplo de utilização}} \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} \{\{ac\}\}byte & \{\{ac\}\}{\bf{1 byte}} & \{\{ac\}\}-128 até 127 & \{\{ac\}\}`\{\{lang-java\}\}byte meuByte = 127;` \tn % Row Count 7 (+ 4) % Row 2 \SetRowColor{LightBackground} \{\{ac\}\}short & \{\{ac\}\}{\bf{2 bytes}} & \{\{ac\}\}-32.768 até 32.767 & \{\{ac\}\}`\{\{lang-java\}\}short meuShort = 4;` \tn % Row Count 11 (+ 4) % Row 3 \SetRowColor{white} \{\{ac\}\}int & \{\{ac\}\}{\bf{4 bytes}} & \{\{ac\}\}-2.147.483.648 até \seqsplit{2.147.483.647} & \{\{ac\}\}`\{\{lang-java\}\}int meuInt = 999999999;` \tn % Row Count 15 (+ 4) % Row 4 \SetRowColor{LightBackground} \{\{ac\}\}\{\{nl\}\}long & \{\{ac\}\}\{\{nl\}\}{\bf{8 bytes}} & \{\{ac\}\}-9.223.372.036.854.775.808\{\{nl\}\}até\{\{nl\}\}9.223.372.036.854.775.807 & \{\{nl\}\}\{\{ac\}\}`\{\{lang-java\}\}long meuLong = \seqsplit{9999999999999;`} \tn % Row Count 21 (+ 6) % Row 5 \SetRowColor{white} \{\{ac\}\}\{\{nl\}\}float & \{\{ac\}\}\{\{nl\}\}{\bf{4 bytes}} & \{\{ac\}\}Armazena números fracionários\{\{nl\}\}com 6 ou 7 dígitos de precisão.\{\{nl\}\}3,4e\textasciicircum{}-0.38\textasciicircum{} até 3,4e\textasciicircum{}+0.38\textasciicircum{} & \{\{nl\}\}\{\{ac\}\}`\{\{lang-java\}\}float meuFloat = \seqsplit{3.141592653589793238f;`} \tn % Row Count 30 (+ 9) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{1.08 cm} x{1.368 cm} x{2.376 cm} x{2.376 cm} } \SetRowColor{DarkBackground} \mymulticolumn{4}{x{8.4cm}}{\bf\textcolor{white}{Tipos de dados Primitivos (cont)}} \tn % Row 6 \SetRowColor{LightBackground} \{\{ac\}\}\{\{nl\}\}double & \{\{ac\}\}\{\{nl\}\}{\bf{8 bytes}} & \{\{ac\}\}Armazena números fracionários\{\{nl\}\}com 15 dígitos de precisão.\{\{nl\}\}1,7e\textasciicircum{}-308\textasciicircum{} até 1,7e\textasciicircum{}+308\textasciicircum{} & \{\{nl\}\}\{\{ac\}\}`\{\{lang-java\}\}double meuDouble = \seqsplit{3.1415926535897932384626433;`} \tn % Row Count 8 (+ 8) % Row 7 \SetRowColor{white} \{\{ac\}\}char & \{\{ac\}\}{\bf{2 bytes}} & \{\{ac\}\}Conjunto de caracteres Unicode & \{\{ac\}\}`\{\{lang-java\}\}char meuCaractere = '\#';` \tn % Row Count 12 (+ 4) % Row 8 \SetRowColor{LightBackground} \{\{ac\}\}boolean & \{\{ac\}\}{\bf{1 bit}} & \{\{ac\}\}`\{\{lang-java\}\}true` ou `\{\{lang-java\}\}false` & \{\{ac\}\}`\{\{lang-java\}\}boolean meuBooleano = true;` \tn % Row Count 16 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}----} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.432 cm} x{2.584 cm} x{2.584 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{Tipos de dados Não-Primitivos}} \tn % Row 0 \SetRowColor{LightBackground} \{\{ac\}\}\{\{width=12\}\}{\bf{Tipo}} & \{\{ac\}\}\{\{width=58\}\}{\bf{Uso}} & \{\{ac\}\}\{\{width=30\}\}{\bf{Exemplo}} \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} \{\{nl\}\}\{\{ac\}\}{\bf{String}}\{\{nl\}\}~ & \{\{nl\}\}\{\{ac\}\}Armazena textos.\{\{nl\}\}~ & `\{\{lang-java\}\}\{\{nl\}\}String texto = "Um exemplo de texto.";`\{\{nl\}\}~ \tn % Row Count 9 (+ 6) % Row 2 \SetRowColor{LightBackground} \{\{nl\}\}\{\{nl\}\}\{\{ac\}\}{\bf{Array}}\{\{nl\}\} & \{\{ac\}\}Armazena um conjunto de {\bf{elementos do mesmo tipo}}. O tamanho de um {\emph{array}} é fixo e especificado na sua criação.\{\{nl\}\}Cada elemento no {\emph{array}} pode ser acessado por um índice numérico que indica a sua posição.\{\{nl\}\}A primeira posição de um {\emph{array}} é sempre 0. & `\{\{lang-java\}\}int{[}{]} numeros = \{10, 20, 30, 40\}; \{\{nl\}\}//numeros{[}X{]} acessa o valor na posição X` `\{\{lang-java\}\}\{\{nl\}\}System.out.println(numeros{[}0{]}); // imprime o valor 10` `\{\{lang-java\}\}\{\{nl\}\}num = numeros{[}2{]}; //copia o valor 30 para a variável num` `\{\{lang-java\}\}\{\{nl\}\}numeros{[}3{]} = 50; //altera a quarta posição de 40 para 50` \tn % Row Count 35 (+ 26) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{2.432 cm} x{2.584 cm} x{2.584 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{Tipos de dados Não-Primitivos (cont)}} \tn % Row 3 \SetRowColor{LightBackground} \{\{ac\}\}\{\{nl\}\}\{\{nl\}\}\{\{nl\}\}{\bf{Class}} & \{\{ac\}\}\{\{nl\}\}Permite modelar e representar um conceito lógico de forma estruturada e \seqsplit{reutilizável}, com seus atributos e \seqsplit{funcionalidades}.\{\{nl\}\}Os atributos representam as \seqsplit{características} da entidade modelada e os métodos definem o \seqsplit{comportamento} ou ações podem ser realizadas por essa entidade.\{\{nl\}\}~ & `\{\{lang-java\}\}\{\{nl\}\}class MinhaClasse\{\{\{nl\}\}~~~~~//Atributos\{\{nl\}\}~~~~~..\{\{nl\}\}~~~~~//Métodos\{\{nl\}\}~~~~~..` `\{\{lang-java\}\}\{\{nl\}\}\}` \tn % Row Count 24 (+ 24) % Row 4 \SetRowColor{white} \{\{ac\}\}\{\{nl\}\}{\bf{Interface}} & \{\{ac\}\}\{\{nl\}\}Declara \seqsplit{comportamentos} que as classes devem implementar. & `\{\{lang-java\}\}interface MinhaInterface\{\{\{nl\}\}~~~~~~~public void metodo1();\{\{nl\}\}~~~~~~~public void metodo2();\{\{nl\}\}\}` \tn % Row Count 39 (+ 15) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{2.432 cm} x{2.584 cm} x{2.584 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{Tipos de dados Não-Primitivos (cont)}} \tn % Row 5 \SetRowColor{LightBackground} \{\{ac\}\}\{\{nl\}\}\{\{nl\}\}{\bf{Enum}}\{\{nl\}\}~ & \{\{ac\}\}\{\{nl\}\}\{\{nl\}\}Representa um conjunto fixo de constantes.\{\{nl\}\}~ & `\{\{lang-java\}\}public enum MeuEnum \{\{\{nl\}\}~~~~~VALOR1,\{\{nl\}\}~~~~~VALOR2,\{\{nl\}\}~~~~~VALOR3\{\{nl\}\}\}` \tn % Row Count 14 (+ 14) \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Quebra de página}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{} \tn % Row Count 0 (+ 0) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Comandos de Seleção}} \tn \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{Comandos ou estruturas de seleção ou condicionais são estruturas de controle que possibilitam ao programador tomar decisões com base em condições específicas. Basicamente, este tipo de comando permite definir se um ou mais conjuntos de instruções serão executados ou não.% Row Count 6 (+ 6) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{{\bf{if}}}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{O comando {\bf{if}} ({\bf{se}} em português) é a estrutura básica de seleção existente em qualquer linguagem de programação. Ele avalia uma condição e executa um bloco de código se essa condição for verdadeira.} \tn % Row Count 5 (+ 5) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{{\bf{Sintaxe:}}`\{\{lang-java\}\}\{\{nl\}\}if (condicao) \{\{\{nl\}\} //executado se a condição for verdadeira` `\{\{lang-java\}\}\{\{nl\}\}\}`} \tn % Row Count 8 (+ 3) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{{\bf{Exemplo:}} `\{\{lang-java\}\}\{\{nl\}\}if (idade \textgreater{}= 18) \{\{\{nl\}\} System.out.println("É maior de idade.");\{\{nl\}\}\}`} \tn % Row Count 11 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{{\bf{if / else}}}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{O comando {\bf{if}} em conjunto com o {\bf{else}} ({\bf{se / senão}} em português) permite avaliar uma condição e executar um bloco de código se essa condição for {\bf{verdadeira}} ou outro bloco de código se a mesma for {\bf{falsa}}.} \tn % Row Count 5 (+ 5) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{{\bf{Sintaxe:}}`\{\{lang-java\}\}\{\{nl\}\}if (condicao) \{ ` `\{\{lang-java\}\}\{\{nl\}\} // executado se a condição for verdadeira \{\{nl\}\}\}` `\{\{lang-java\}\}\{\{nl\}\}else \{` `\{\{lang-java\}\}\{\{nl\}\} // executado se a condição for falsa \{\{nl\}\}\}`} \tn % Row Count 10 (+ 5) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{{\bf{Exemplo 1:}} `\{\{lang-java\}\}\{\{nl\}\}if (idade \textless{} 18) \{ \{\{nl\}\} System.out.println("É menor de idade.");\{\{nl\}\}\} \{\{nl\}\}else \{ \{\{nl\}\} System.out.println("É maior de idade."); \{\{nl\}\}\}`} \tn % Row Count 14 (+ 4) % Row 3 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{O comando {\bf{else}} é opcional. Podem ser concatenados vários {\bf{if}} / {\bf{else}} em conjunto, mas somente o {\bf{if}} pode conter expressões e todo o {\bf{else}} deve ter um {\bf{if}} correspondente.} \tn % Row Count 18 (+ 4) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{{\bf{Exemplo 2:}}`\{\{lang-java\}\}\{\{nl\}\}if (condicao1) \{` `\{\{lang-java\}\}\{\{nl\}\} // executado se a condicao1 for verdadeira` `\{\{lang-java\}\}\{\{nl\}\}\} \{\{nl\}\}else if (condicao2) \{` `\{\{lang-java\}\}\{\{nl\}\} // executado se a condicao1 for falsa \{\{nl\}\} // e a condicao2 for verdadeira` `\{\{lang-java\}\}\{\{nl\}\}\} \{\{nl\}\}else \{` `\{\{lang-java\}\}\{\{nl\}\} // executado se nenhuma das condições \{\{nl\}\} // anteriores for verdadeira` `\{\{lang-java\}\}\{\{nl\}\}\}`} \tn % Row Count 27 (+ 9) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{{\bf{switch / case}}}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{Permite avaliar uma variável e escolher diferentes caminhos de execução com base nos possíveis valores dessa variável. A variável avaliada pode ser do tipo `\{\{lang-java\}\}{\bf{boolean}}, {\bf{byte}}, {\bf{short}}, {\bf{int}}, {\bf{enum}}, {\bf{char}}` ou `\{\{lang-java\}\}{\bf{String}}`. Os outros tipos de dados não são suportados. A opção {\bf{`\{\{lang-java\}\}default`}} permite executar um bloco de código caso nenhum dos valores declarados anteriormente corresponda ao conteúdo atual da variável, mas sua definição é opcional.\{\{nl\}\}No {\bf{`\{\{lang-java\}\}switch/case`}} não existem blocos definidos por chaves ({\bf{`\{\{lang-java\}\}\{ \}`}}). Para definir o ponto de parada das instruções de um caso, é utilizada a palavra-chave {\bf{`\{\{lang-java\}\}break`}}. É possível executar o mesmo bloco de código para diferentes casos, se eles estiverem em sequência, como no {\bf{Exemplo 2}}.} \tn % Row Count 18 (+ 18) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{{\bf{Sintaxe:}}`\{\{lang-java\}\}\{\{nl\}\}switch (variavel) \{ \{\{nl\}\} case valor1: \{\{nl\}\} // executado se a expressao for igual a valor1` `\{\{lang-java\}\}\{\{nl\}\} break; \{\{nl\}\} case valor2: \{\{nl\}\} // executado se a expressao for igual a valor2` `\{\{lang-java\}\}\{\{nl\}\} break; \{\{nl\}\} // outros cases e blocos de código` `\{\{lang-java\}\}\{\{nl\}\} default: \{\{nl\}\} // opcional \{\{nl\}\} // executado se nenhum case anterior for válido` `\{\{lang-java\}\}\{\{nl\}\}\}`} \tn % Row Count 28 (+ 10) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{{\bf{Exemplo 1 (inteiro):}}} \tn % Row Count 29 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{`\{\{lang-java\}\}int opcao = 2; \{\{nl\}\}switch (opcao) \{ \{\{nl\}\} case 1: \{\{nl\}\} \seqsplit{System.out.println("Opção} 1 selecionada."); \{\{nl\}\} break; \{\{nl\}\} case 2: \{\{nl\}\} \seqsplit{System.out.println("Opção} 2 selecionada."); \{\{nl\}\} break; \{\{nl\}\} default: \{\{nl\}\} \seqsplit{System.out.println("Opção} inválida."); \{\{nl\}\}\}`} \tn % Row Count 36 (+ 7) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{{\bf{switch / case}} (cont)}} \tn % Row 4 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{{\bf{Exemplo 2 (String):}}} \tn % Row Count 1 (+ 1) % Row 5 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{`\{\{lang-java\}\}String diaSemana = "quarta"; \{\{nl\}\}switch (diaSemana) \{ \{\{nl\}\} case "segunda": \{\{nl\}\} case "terça": \{\{nl\}\} case "quarta": \{\{nl\}\} case "quinta": \{\{nl\}\} case "sexta": \{\{nl\}\} System.out.println("Dia útil selecionado."); \{\{nl\}\} break; \{\{nl\}\} case "sábado": \{\{nl\}\} case "domingo": \{\{nl\}\} System.out.println("Fim de semana selecionado."); \{\{nl\}\} break; \{\{nl\}\} default: \{\{nl\}\} System.out.println("Dia inválido."); \{\{nl\}\}\}`} \tn % Row Count 12 (+ 11) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Comandos de Repetição}} \tn \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{Os comandos de repetição, estruturas de repetição, laços de repetição ou {\emph{loops}} são utilizados na programação para executar um bloco de código várias vezes de forma automatizada, com base em uma condição de controle.% Row Count 5 (+ 5) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{while}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{O {\bf{while}} ({\bf{enquanto}} em português) é utilizado quando não sabemos previamente quantas vezes a repetição deve ocorrer, mas temos uma condição de parada.} \tn % Row Count 4 (+ 4) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{{\bf{Sintaxe:}}`\{\{lang-java\}\}\{\{nl\}\}while (condicao) \{` `\{\{lang-java\}\}\{\{nl\}\} /* executado enquanto a condição\{\{nl\}\} for verdadeira */` `\{\{lang-java\}\}\{\{nl\}\}\}`} \tn % Row Count 8 (+ 4) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{{\bf{Exemplo 1 (expressão):}} `\{\{lang-java\}\}\{\{nl\}\}int i = 1; \{\{nl\}\}while (i \textless{}= 5) \{ \{\{nl\}\} System.out.println(i); \{\{nl\}\} i++; \{\{nl\}\}\}`} \tn % Row Count 11 (+ 3) % Row 3 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{{\bf{Exemplo 2 (boolean):}} `\{\{lang-java\}\}\{\{nl\}\}boolean ligado = true; \{\{nl\}\}while (ligado) \{ \{\{nl\}\} \seqsplit{System.out.println("Está} ligado");\{\{nl\}\} \seqsplit{System.out.println("Desligando...");} \{\{nl\}\} ligado = false; \{\{nl\}\}\}`} \tn % Row Count 16 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{do/while}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{O {\bf{`\{\{lang-java\}\}do/while`}} ({\bf{faça enquanto}} em português) é semelhante ao {\bf{`\{\{lang-java\}\}while`}}, mas é utilizado quando queremos executar o código {\bf{pelo menos uma vez}}.} \tn % Row Count 4 (+ 4) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{{\bf{Sintaxe:}}`\{\{lang-java\}\}\{\{nl\}\}do\{` `\{\{lang-java\}\}\{\{nl\}\} /*executado pelo menos uma vez e \{\{nl\}\} enquanto a condição for verdadeira */\{\{nl\}\}\} while (condicao);`} \tn % Row Count 8 (+ 4) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{{\bf{Exemplo 1:}}`\{\{lang-java\}\}\{\{nl\}\} // imprime na tela os números de 1 até 5``\{\{lang-java\}\}\{\{nl\}\}int i = 1; \{\{nl\}\}do\{ \{\{nl\}\} System.out.println(i); \{\{nl\}\} i++; \{\{nl\}\}\}while (i \textless{}= 5);`} \tn % Row Count 12 (+ 4) % Row 3 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{{\bf{Exemplo 2:}}`\{\{lang-java\}\}\{\{nl\}\} // imprime apenas o número 10 na tela``\{\{lang-java\}\}\{\{nl\}\}int i = 10; \{\{nl\}\}do\{ \{\{nl\}\} System.out.println(i); \{\{nl\}\} i++; \{\{nl\}\}\}while (i \textless{}= 5);`} \tn % Row Count 16 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{for}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{Utilizado quando se conhece antecipadamente quantas vezes o bloco de código deve ser repetido. A sua estrutura contém de forma agrupada uma inicialização, uma condição e uma expressão de iteração.} \tn % Row Count 5 (+ 5) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{{\bf{Sintaxe:}}`\{\{lang-java\}\}\{\{nl\}\}for (inicializacao; condicao; iteracao) \{ \{\{nl\}\} // bloco de código a ser repetido` `\{\{lang-java\}\}\{\{nl\}\}\}`} \tn % Row Count 8 (+ 3) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{{\bf{Exemplo 1:}}} \tn % Row Count 9 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{`\{\{lang-java\}\}// imprime na tela os números de 1 até 5` `\{\{lang-java\}\}\{\{nl\}\}for (int i = 1; i \textless{}= 5; i++) \{ \{\{nl\}\} System.out.println(i); \{\{nl\}\}\}`} \tn % Row Count 12 (+ 3) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{{\bf{Exemplo 2:}}} \tn % Row Count 13 (+ 1) % Row 5 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{`\{\{lang-java\}\}// imprime na tela os números de 10 até 1` `\{\{lang-java\}\}\{\{nl\}\}for (int i = 10; i \textgreater{}= 1; i-{}-) \{ \{\{nl\}\} System.out.println(i); \{\{nl\}\}\}`} \tn % Row Count 17 (+ 4) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{{\bf{Exemplo 3:}}} \tn % Row Count 18 (+ 1) % Row 7 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{`\{\{lang-java\}\}/* imprime na tela o conteúdo de um array\{\{nl\}\}de float com 3 posições */\{\{nl\}\}float{[}{]} array = \{1.0f, 3.2f, 9.55f\};\{\{nl\}\}for (int p = 0; p \textless{} 3; p++) \{ \{\{nl\}\} System.out.println(array{[}p{]}); \{\{nl\}\}\}`} \tn % Row Count 23 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{{\bf{for each}}}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{Este tipo de {\bf{for}} é utilizado quando se deseja percorrer uma coleção de dados.} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{{\bf{Formato:}}`\{\{lang-java\}\}\{\{nl\}\}for (tipo elemento : colecao) \{\{\{nl\}\} /* código a ser repetido\{\{nl\}\} para cada elemento */` `\{\{lang-java\}\}\{\{nl\}\}\}`} \tn % Row Count 6 (+ 4) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{{\bf{Exemplo (array):}}`\{\{lang-java\}\}\{\{nl\}\}int{[}{]} numeros = \{1, 4, 7, 12\}; \{\{nl\}\}\{\{nl\}\}//imprime os números do array na tela``\{\{lang-java\}\}\{\{nl\}\}for (int numero : numeros) \{ \{\{nl\}\} \seqsplit{System.out.println(numero);} \{\{nl\}\}\}`} \tn % Row Count 11 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}