Repositório do curso Estruturas de Repetição e Arrays com Java. Curso este oferecido pela Digital Innovation one e ministrado por mim.

Overview

ESTRUTURAS DE REPETIÇÃO E ARRAYS COM JAVA

Resolução dos exercícios propostos: ESTRUTURAS DE REPETIÇÃO E ARRAYS NA LINGUAGEM JAVA. Curso este que tive a honra de co-criar com a plataforma de cursos online DIGITAL INNOVATION ONE 🧡 💛 e disponibilizado de forma gratuita para a comunidade dos desenvolvedores Java.

🛑 Pré-requistos

  • Java JDK 11
  • IDE para desenvolvimento Java
  • Conhecer a sintaxe Java

📚 Ementa

Ao assistir este curso, Dev será capaz de entender na prática como trabalhar com as estruturas de repetição (while/do-while/for) e arrays. Se tratando de arrays, também vamos conhecer a estrutura foreach.

👀 Visão geral: Estruturas de Repetição e Arrays

Exercícios Loops

Exercícios Arrays

ESTRUTURAS DE REPETIÇÃO

🔸 O real poder dos computadores está na sua habilidade para repetir uma operação ou uma série de operações várias vezes (loop).
🔸 Uma estrutura de repetição permite que uma sequência de comandos seja executada repetidamente, caso determinadas condições são satisfeitas.
🔸 Essas condições são representadas por expressões lógica.
🔸 As estruturas de repetição podem ser classificadas em:

  • Repetição com teste no início (while)
  • Repetição com teste no final (do-while)
  • Repetição contada (for)

🔸 O comando break é utilizado para terminar de forma abrupta uma repetição.
🔸 Quando comando continue é executado, os comandos restantes da repetição são ignorados e programa volta a testar novamente a condição.

📊 FLUXOGRAMAS

Screenshot-from-2021-08-25-09-44-42

/ OPERADORES DE INCREMENTO E DECREMENTO

Screenshot-from-2021-08-23-10-56-10

🧮 OPERAÇÕES ARITMÉTICAS

Screenshot-from-2021-08-23-10-56-24

EXTRA:

FLUXO DE EXECUÇÃO ARBRITÁRIO: goto

🔸 O comando goto tem por finalidade desviar a execução do programa para qualquer outro ponto do programa, desconsiderando qualquer estrutura de repetição ou estrutura condicional.
🔸 Ao contrário de C/C++, Java não tem instrução goto, mas java oferece suporte a label.

🔗 https://www.geeksforgeeks.org/g-fact-64/
🔗 https://www.tutorialspoint.com/How-to-use-labels-in-Java-code


💭 EXERCÍCIOS ESTRUTURAS DE REPETIÇÃO

📝 WHILE

🔸 Nome e Idade: Faça um programa que leia conjuntos de dois valores, o primeiro representando a matrícula do aluno e o segundo representando a sua altura em centímetros. (Pare inserindo o valor 0 no campo nome)

🔸 Nota: Faça um programa que peça uma nota, entre zero e dez. Mostre uma mensagem caso o valor seja inválido e continue pedindo até que o usuário informe um valor válido.

📝 DO-WHILE

🔸 Maior e Média: Faça um programa que leia 5 números e informe o maior número e a média desses números.

🔸 Par e Ímpar: Faça um programa que peça N números inteiros, calcule e mostre a quantidade de números pares e a quantidade de números impares.

📝 FOR

🔸 Tabuada: Desenvolva um gerador de tabuada, capaz de gerar a tabuada de qualquer número inteiro entre 1 a 10. O usuário deve informar de qual numero ele deseja ver a tabuada. A saída deve ser conforme o exemplo abaixo:

Tabuada de 5:
5 X 1 = 5
5 X 2 = 10
...
5 X 10 = 50

🔸 Fatorial: Faça um programa que calcule o fatorial de um número inteiro fornecido pelo usuário.
Ex.: 5!=5.4.3.2.1=120

🔗 Lista de Exercícios Estruturas de Repetição - Possíveis Soluções


⛓️ ARRAYS

🔹 Array é um objeto utilizado para armazenar sequencialmente dados do mesmo tipo.
🔹 Permanecem com o mesmo tamanho depois de criados.

Screenshot-from-2021-08-25-09-11-48


💭 EXERCÍCIOS ARRAYS

📝 ARRAYS UNIDIMENSIONAIS

🔹 Ordem Inversa: Faça um Programa que leia um vetor de 5 números inteiros e mostre-os na ordem inversa.

🔹 Consoantes: Faça um Programa que leia um vetor de 6 caracteres, e diga quantas consoantes foram lidas. Imprima as consoantes.

🔹 Números Aleatórios: Faça um Programa que leia 20 números inteiros aleatórios (entre 0 e 100) armazene-os num vetor. Ao final, mostre os números e seus sucessores.

🔗 Lista de Exercícios Arrays Unidimensionais - Possíveis soluções

📝 ARRAYS MULTIDIMENSIONAIS

🔹 Array Multidimensional: Gere e imprima uma matriz M 4x4 com valores aleatórios entre 0-9. Após isso determine o menor número da matriz e a sua posição(linha, coluna).

🔗 Lista de Exercícios Arrays Multidimensionais


🔎 Referências Bibliográficas

🔗 https://www.ic.unicamp.br/~wainer/cursos/2s2011/Cap06-RepeticaoControle-texto.pdf
🔗 http://www2.ic.uff.br/~vanessa/material/prog1/Aula6.pdf
🔗 http://www.facom.ufu.br/~backes/gsi002/Aula05-ComandosRepeticao.pdf
🔗 https://blog.grancursosonline.com.br/java-operadores-de-incremento-e-decremento/
🔗 http://www.facom.ufu.br/~bacala/POO/04%20-%20Arrays%20em%20Java.pdf
🔗 http://www.inf.ufsc.br/~frank.siqueira/INE5404/7.Arrays.pdf

🤝 Contribuindo

Este repositório foi criado para fins de estudo, então contribua com ele.
Se te ajudei de alguma forma, ficarei feliz em saber. E caso você conheça alguém que se identidique com o conteúdo, não deixe de compatilhar.

Se possível:

⭐️ Star o projeto

🐛 Encontrar e relatar issues


Disponibilizado com por cami-la.

Comments
  • Mostrar numeros aleatorios acima da dificuldade dita

    Mostrar numeros aleatorios acima da dificuldade dita

    Poderia me ajudar? Estou tentando fazer um rolador de dados, consegui até certo ponto e agora no final eu travei. Gostaria que no final fosse dito os números que fossem acima da dificuldade de ação(dif).

    package Roladordedados;

    import java.util.Random; import java.util.Scanner;

    public class Main { public static void main(String[] args) { Random random = new Random(); Scanner scan = new Scanner(System.in);

        int dif, dados;
    
        System.out.println("Qual a Dificuldade da ação? ");
        dif = scan.nextInt();
        System.out.println("Quantos dados? ");
        dados = scan.nextInt();
    
        int[] numerosAleatorios = new int[dados];
    
        for (int i = 0; i < numerosAleatorios.length; i++) {
            int numero = random.nextInt(10);
            numerosAleatorios[i] = numero + 1; 
        }
    
        System.out.print("Dados rolados: ");
        for (int numero : numerosAleatorios) {
            System.out.print(numero + " ");
        }
    

    --------------tentei exemplificar aqui no final----------------

        // MOSTRAR OS NUMEROS ACIMA DA DIFICULDADE
        //System.out.print("\nSucessos: ");
        //for (int numero : numerosAleatorios) {
        //    System.out.print((numero >= dif) + " ");
    
    opened by Brujahhell 5
  • Exercício com titulo errado

    Exercício com titulo errado

    O titulo do primeiro exercício do WHILE não condiz com o enunciado, poderia checar por favor? WHILE Estava me causando confusão mas localizei na lista deste link Lista de Estruturas de Repetição, no exercício 39, e entendi. @cami-la

    opened by danielgomees 4
  • Ex2_Nota - Nova Abordagem

    Ex2_Nota - Nova Abordagem

    • Notei que o enunciado não está exatamente como foi desenvolvido.
    • Apresento uma nova abordagem para sua avalição.
    • E para sair do programa só digitar -1.

    `package br.com.dio.loops;

    import java.util.Scanner;

    /**

    • Faça um programa que peça uma nota, entre zero e dez.

    • Mostre uma mensagem caso o valor seja inválido e continue

    • pedindo até que o usuário informe um valor válido */ public class Nota { public static void main(String[] args) { Scanner scan = new Scanner(System.in); Integer nota = 0;

       while ( nota != -1 ){
           System.out.println("Digite sua nota: ");
           nota = scan.nextInt();
           if ( !(nota >= 0 && nota <= 10) ){
               System.out.println("Digite uma nota entre 0 e 10");
           }
       }
      

      } } ` Qualquer observação.. só falar. Obrigado!

    opened by jvmarquesvm 3
  • Ex3 - MaiorMedia

    Ex3 - MaiorMedia

    Estou fazendo o Bootcamp TQI da Dio e na aula de resolução do exercício Ex3 - MaiorMedia eu acho que a forma como o contador foi construído poderia apresentar um resultado errado atribuindo o valor Zero para ele fora do laço. caso o usuário do programa digite somente números negativos, ao final da execução o programa vai entregar que o maior número digitado teria sido o Zero, mesmo ele não ter sido digitado.

    Eu resolvi esta questão fazendo o seguinte código no método main:

       Scanner sc = new Scanner(System.in);
    
        int numero, maior, soma;
        double media;
        int i = 1;
    
    
    
        System.out.print("Digite o 1º número:");
        numero = sc.nextInt();
        maior = numero;
        soma = numero;
    
        do{
            System.out.printf("Digite o %dº número: ", i+1);
            numero = sc.nextInt();
            soma += numero;
            if (numero > maior) maior = numero;
        } while(i++ < 4);
    
        media = (double)soma / 5;
    
        System.out.println("O maior número foi: " + maior);
        System.out.println("A média é igual a: " + media);
    
        sc.close();
    
    opened by marepifanio 3
  • Ex3_MaiorEMedia.java

    Ex3_MaiorEMedia.java

    Boa tarde, Camila! No exercício MaiorEMedia, como atribuímos 0 para a variável Maior o programa não é capaz de identificar o maior número se utilizarmos números negativos. Como podemos adaptar o código para funcionar também para números negativos?

    opened by cassiafg 2
  • Dá para fazer uma taboada igual a de for em while?

    Dá para fazer uma taboada igual a de for em while?

    Olá professora tentei criar uma taboada usando while porém não deu muito certo. https://github.com/VLHIDDEN/Tabuada_java_while_E_For Se possivel dê uma olhada, ela retorna a respota correta porém não em lista.

    opened by VLHIDDEN 1
  • problemas no exercício nomeidade

    problemas no exercício nomeidade

    Bom dia

    aplicando o código do exercício

    import java.util.Scanner;

    /* Faça um programa que leia conjuntos de dois valores, o primeiro representando o nome do aluno e o segundo representando a sua idade. (Pare o programa inserindo o valor 0 no campo nome) */ public class Ex1_NomeEIdade { public static void main(String[] args) { Scanner scan = new Scanner(System.in);

        String nome;
        int idade;
    
        while(true) {
            System.out.println("Nome: ");
            nome = scan.next();
            if (nome.equals("0")) break;
    
            System.out.println("Idade: ");
            idade = scan.nextInt();
        }
    
        System.out.println("Continua aqui...");
    
    }
    

    Está dando os seguintes problemas:

    Resource leak: 'scan' is never closed Java(53681799) Ln10, Col 17 The value of the local variable is not used Java (536870973) Ln 13, col13

    Grato

    opened by perucci17 0
  • Erro para exportar exercicios

    Erro para exportar exercicios

    Olá Camila, estou tentando abrir o código da solução de exercícios da estrutura de repetição, não consigo visualizar o código e nem copiá-lo, como faço para pegar o código 002 da lista de exercícios de estruturas de repetição?

    opened by PedroHQO 0
  • Erro no código bound

    Erro no código bound

    Boa noite Camila, estou fazendo os exercícios de loop e arrays junto com as aulas, e estou fazendo tudo manualmente, mas quando faço a palavra bound fica vermelha, e quando copio o código do seu github ele não fica vermelho, queria saber se pode me ajudar com esse problema. Bound

    opened by brenoas1 2
  • Bom dia! Esse código abaixo não consegue mostrar somente as consoantes, o mesmo mostra vogais e consoantes juntas.

    Bom dia! Esse código abaixo não consegue mostrar somente as consoantes, o mesmo mostra vogais e consoantes juntas.

    import java.util.Scanner;

    public class Consoantes { public static void main(String[] args) { Scanner scan = new Scanner(System.in);

        String[] consoantes = new String[6];
        int quantidadeConsoantes = 0;
    
        int count = 0;
        do {
            System.out.println("Letra: ");
            String letra = scan.next();
    
            if (!(letra.equalsIgnoreCase("a") |
                    letra.equalsIgnoreCase("e") |
                    letra.equalsIgnoreCase("i") |
                    letra.equalsIgnoreCase("o") |
                    letra.equalsIgnoreCase("u"))); {
                 consoantes[count] = letra;
                 quantidadeConsoantes++;
            }
    
            count++;
    
        }while (count < consoantes.length);
    
        System.out.println("Consoantes: ");
        for ( String consoante : consoantes) {
            if (consoante != null)
            System.out.print(consoante + " ");
        }
    
    
    }
    

    }

    opened by celebrimbor02 1
  • Do Zero

    Do Zero

    Boa noite Camila! Não consegui nem criar a estrutura sugerida por você na aula, pois a pasta src só é possível ser criada como package e aí só assim ele cria o arquivo main.java . Caso contrário, se for como diretório, não é possível prosseguir, pois o arquivo do exercício não roda... Tem alguma dica de construção do formato sugerido por você?

    Observação: fiz as aulas da semana iFood com você e fiz as aulas anteriores a sua nesse bootcamp, porém sem sucesso para criação dos exercícios para acompanhá-la...

    Obrigado pela atenção.

    Hilário...

    opened by hilariogrossi 1
A small and easy-to-use one-time password generator library for Java according to RFC 4226 (HOTP) and RFC 6238 (TOTP).

OTP-Java A small and easy-to-use one-time password generator for Java according to RFC 4226 (HOTP) and RFC 6238 (TOTP). Table of Contents Features Ins

Bastiaan Jansen 106 Dec 30, 2022
A small and easy-to-use one-time password generator library for Java according to RFC 4226 (HOTP) and RFC 6238 (TOTP).

OTP-Java A small and easy-to-use one-time password generator for Java according to RFC 4226 (HOTP) and RFC 6238 (TOTP). Table of Contents Features Ins

Bastiaan Jansen 106 Dec 30, 2022
Projeto 2, app mobile de Ordens de Serviços da aula de Tópicos Especiais em Informática do curso de Análise e Desenvolvimento de Sistemas da FATEC - São Caetano do Sul, com android studio.

Projeto 2 Sistema Ordem De Serviço Tópicos Especiais em Informática TIPO DE NEGÓCIO: EMPRESA DE DESENVOLVIMENTO DE SOFTWARES OBJETIVO: Implementar um

Vicente Luz 1 Jun 28, 2022
Java JWT: JSON Web Token for Java and Android

Java JWT: JSON Web Token for Java and Android JJWT aims to be the easiest to use and understand library for creating and verifying JSON Web Tokens (JW

null 8.8k Dec 30, 2022
Java Project based on Java and Encryption using Cryptography algorithms

Symmetric-Encryption-Cryptography-in-Java Java Project based on Java and Encryption using Cryptography algorithms Project Aim Develop Java program to

Muhammad Asad 6 Feb 3, 2022
A mitigation for CVE-2021-44228 (log4shell) that works by patching the vulnerability at runtime. (Works with any vulnerable java software, tested with java 6 and newer)

Log4jPatcher A Java Agent based mitigation for Log4j2 JNDI exploits. This agent employs 2 patches: Disabling all Lookup conversions (on supported Log4

null 45 Dec 16, 2022
Java binding to the Networking and Cryptography (NaCl) library with the awesomeness of libsodium

kalium - Java binding to the Networking and Cryptography (NaCl) library A Java binding to Networking and Cryptography library by Daniel J. Bernstein.

Bruno Oliveira da Silva 206 Oct 5, 2022
Security engine for Java (authentication, authorization, multi frameworks): OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...

pac4j is an easy and powerful security engine for Java to authenticate users, get their profiles and manage authorizations in order to secure web appl

PAC4J 2.2k Dec 30, 2022
Bouncy Castle Java Distribution (Mirror)

The Bouncy Castle Crypto Package For Java The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms, it was developed by t

Legion of the Bouncy Castle Inc 1.8k Dec 30, 2022
An authorization library that supports access control models like ACL, RBAC, ABAC in Java

jCasbin News: still worry about how to write the correct jCasbin policy? Casbin online editor is coming to help! Try it at: http://casbin.org/editor/

Casbin 2k Dec 30, 2022
PicketLink is a security framework for securing Java EE applications.

PicketLink http://picketlink.org Java EE Application Security Identity Management Federation Social REST Security Standard-based Security This reposit

PicketLink 92 Feb 21, 2022
OACC (Object ACcess Control) is an advanced Java Application Security Framework

OACC Java Application Security Framework What is OACC? OACC - pronounced [oak] - is a fully featured API to both enforce and manage your application's

null 103 Nov 24, 2022
okta-auth-java

Okta Java Authentication SDK Release status Need help? Getting started Usage guide Configuration reference Building the SDK Contributing The Okta Auth

Okta, Inc 34 Sep 30, 2022
JSON Web Token (JWT) implementation for Java with support for signatures (JWS), encryption (JWE) and web keys (JWK).

Nimbus JOSE+JWT Nimbus JOSE+JWT is a popular open source (Apache 2.0) Java library which implements the Javascript Object Signing and Encryption (JOSE

Connect2ID 35 Jul 1, 2022
破解 Java 混淆工具 Allatori

AllatoriCrack 基于当前最新的 7.6 版本 简介: 破解 Java 混淆工具 Allatori 官网 并进行了部分加密功能的小修改 allatori 本身使用方法特别简单 命令行输入 java -Xms128m -Xmx512m -jar allatori.jar config.xml

null 161 Jan 4, 2023
Amazon Selling Partner JAVA SDK SP API

amazon-sp-api amazon sp api java sdk 背景: 亚马逊(amazon)在2020年10月推出了新的替代mws的api方案,称为Selling Partner API(SP-API)。sp-api在修改原mws的接口方式的基础上引入了aws的IAM权限管理,增加了开发

penghp 93 Nov 20, 2022
Java bytecode obfuscator with GUI

Bozar A Java bytecode obfuscator with GUI Usage Download the version you want in releases for your platform Run the executable. Done. Let me know if o

null 101 Dec 31, 2022
A java implementation of Enigma, and a modern attack to decrypt it.

Java Enigma This is a Java implementation of an Enigma machine, along with code that attempts to break the encryption. This code is associated with an

Michael Pound 584 Jan 4, 2023
Engin Demiroğun düzenlemiş olduğu (Java & React) Yazılım Geliştirici Yetiştirme Kampında yapmış olduğum ödevleri içermektedir.

Java-React-Yazilim-Gelistirici-Yetistirme-Kampi-Odevler Engin Demiroğun düzenlemiş olduğu (Java & React) Yazılım Geliştirici Yetiştirme Kampında yapmı

Baran Emre Türkmen 2 Apr 26, 2022