LOOP Flashcards

(31 cards)

1
Q

O que as linhas v_SEGMERCADO CLIENTE.SEGMERCADO_ID%type := 2; e v_ID CLIENTE.ID%type := 1; fazem?

A

Elas declaram duas variáveis. v_SEGMERCADO armazena o novo ID do segmento de mercado (inicializado com 2) e v_ID armazena o ID do cliente (inicializado com 1). O tipo de dado é o mesmo da coluna correspondente na tabela CLIENTE.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Qual o propósito da linha v_ID := v_ID + 1;?

A

Ela incrementa o valor da variável v_ID em 1. Isso é crucial para que, na próxima iteração, a procedure ATUALIZAR_SEGMERCADO seja executada para o próximo cliente na tabela.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Qual é a principal desvantagem deste código e como podemos melhorá-lo?

A

A principal desvantagem é a repetição excessiva das linhas ATUALIZAR_SEGMERCADO e v_ID := v_ID + 1. Para melhorar, podemos usar um LOOP para automatizar a repetição dessas linhas, tornando o código mais conciso e fácil de manter.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

O que é um LOOP em PL/SQL e qual a sua finalidade?

A

Um LOOP é uma estrutura de controle que permite repetir um bloco de código várias vezes. Ele é usado para executar uma série de comandos até que uma condição de saída seja atendida.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quais são os componentes básicos de um LOOP simples em PL/SQL?

A

Os componentes básicos são:

LOOP: Marca o início do bloco de código a ser repetido.
EXIT WHEN condição: Define a condição de saída do loop. Quando a condição é verdadeira, o loop é interrompido.
END LOOP: Marca o fim do bloco de código a ser repetido.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Como você define uma condição de saída em um LOOP?

A

Utiliza-se o comando EXIT WHEN seguido de uma condição lógica. Por exemplo:

EXIT WHEN v_ID > 9;

Neste caso, o loop será interrompido quando o valor de v_ID for maior que 9.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qual a importância de usar LOOP em PL/SQL?

A

O LOOP ajuda a reduzir a repetição de código, tornando o programa mais simples, legível e fácil de manter. Ele permite executar a mesma operação em vários registros ou até que uma condição específica seja alcançada.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

O que faz o bloco LOOP … END LOOP;?

A

Este bloco define um loop que será executado repetidamente até que a condição de saída seja atendida. Dentro do loop, o código atualiza o segmento de mercado do cliente e incrementa o ID para o próximo cliente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

O que faz a linha v_ID := v_ID + 1;?

A

Essa linha incrementa o valor da variável v_ID em 1. Isso garante que, na próxima iteração do loop, o próximo cliente na sequência seja atualizado.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

O que faz a linha EXIT WHEN v_ID > 9;?

A

Essa linha define a condição de saída do loop. O loop continuará a ser executado até que o valor de v_ID seja maior que 9. Quando v_ID for maior que 9, o loop será interrompido e a execução do programa continuará após o END LOOP.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Qual o resultado final deste bloco de código?

A

Este bloco de código atualiza o segmento de mercado dos clientes com IDs de 3 a 9 para o valor 2. Ele itera sobre os clientes, atualizando seus registros até que o ID seja maior que 9, momento em que o loop é interrompido.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Note que o campo VALOR_TOTAL, que deveria ser a QUANTIDADE x PRECO, não está calculado corretamente, bem como o PERCENTUAL_IMPOSTO, que está vazio. Relembrando que o PERCENTUAL_IMPOSTO é obtido da função RETORNA_IMPOSTO.

Faça uma procedure que percorra, de forma sequencial, o valor do identificador da venda (ID) e atualize, na tabela PRODUTO_VENDA_EXERCICIO, as colunas VALOR_TOTAL e PERCENTUAL_IMPOSTO.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Qual a principal diferença entre LOOP e FOR em PL/SQL?

A

LOOP é usado quando a condição de saída é indeterminada. FOR é usado quando o número de repetições é conhecido.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Como se declara a estrutura FOR em PL/SQL?

A

FOR variável IN valor_inicial..valor_final LOOP

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Qual a vantagem de usar FOR em vez de LOOP quando se conhece o número de repetições?

A

FOR é mais simples e eficiente para percorrer um número finito de vezes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Qual o objetivo do FOR v_ID IN 1..v_NUMCLI LOOP?

A

Inicia um loop que itera de 1 até o valor armazenado em v_NUMCLI, usando v_ID como contador.

17
Q

Por que a variável v_ID não é declarada explicitamente na seção DECLARE?

A

Porque quando v_ID é usada dentro do FOR, não é preciso declará-la.

18
Q

O que faz a declaração v_NUMCLI INTEGER;?

A

Declara uma variável chamada v_NUMCLI do tipo inteiro, que será utilizada para armazenar a quantidade de clientes.

19
Q

Explique o loop FOR v_ID IN 1..v_NUMCLI LOOP … END LOOP;

A

Este loop itera sobre todos os IDs de clientes, de 1 até o número total de clientes (v_NUMCLI). Em cada iteração, a variável v_ID assume o valor do ID do cliente atual.

20
Q

Qual é a forma de se indicar o parâmetro nomeado?

21
Q

Qual a função do comando EXIT dentro de um loop LOOP-END LOOP em PL/SQL?

A

Permite sair do loop antes que a condição de repetição seja normalmente atingida.

22
Q

Como usar EXIT WHEN para sair de um loop?

A

EXIT WHEN condição; (o loop é interrompido quando a condição se torna verdadeira).

23
Q

Qual a vantagem de usar EXIT dentro de um loop?

A

Oferece flexibilidade no controle do fluxo de execução, permitindo sair do loop sob condições específicas.

24
Q

Qual o efeito do comando EXIT; dentro do bloco ELSE?

A

Encerra o loop LOOP imediatamente quando a condição v_ID <= 9 é falsa.

25
Qual a finalidade geral deste bloco de código?
Atualiza o segmento de mercado de clientes (usando a procedure ATUALIZAR_SEGMERCADO) até que o ID do cliente seja maior que 9, utilizando um loop LOOP controlado por uma condição IF e um comando EXIT.
26
Temos 9 vendas realizadas no ano de 2022. Com quantas vendas no ano o valor total atingiu 20.000? Se olharmos no "olho", veremos que após a venda 6, o valor somado das vendas, desde a venda 1, atingiu mais de 20.000,00. A resposta para a pergunta acima seria então a partir da venda 6. Faça uma procedure que retorne este valor (nome: SOMA_VENDAS), que use um FOR e que execute o EXIT no meio do LOOP.
27
Qual a função da estrutura WHILE em PL/SQL?
Executa um bloco de código repetidamente enquanto uma condição especificada for verdadeira. A condição é verificada no início de cada iteração.
28
Em que momento a condição do WHILE é verificada?
No início de cada iteração do loop. Se a condição for falsa desde o início, o bloco de código dentro do loop nunca será executado.
29
Qual a diferença entre usar WHILE e LOOP...EXIT WHEN para criar um loop?
WHILE verifica a condição no início de cada iteração, enquanto LOOP...EXIT WHEN executa o bloco de código e verifica a condição EXIT em algum ponto dentro do loop. WHILE pode ser mais conciso quando a condição é clara desde o início.
30
O que acontece se a condição do WHILE nunca se tornar falsa?
O loop será executado indefinidamente, resultando em um loop infinito. É importante garantir que a condição eventualmente se torne falsa para evitar esse problema.
31
Qual o propósito do bloco: WHILE v_ID <= v_NUMCLI LOOP ATUALIZAR_SEGMERCADO (v_ID, v_SEGMERCADO); v_ID := v_ID + 1; END LOOP;
Cria um loop que executa enquanto o valor de v_ID for menor ou igual ao número total de clientes (v_NUMCLI). ATUALIZAR_SEGMERCADO (v_ID, v_SEGMERCADO): Chama um procedimento (não definido no código) para atualizar o segmento de mercado do cliente com o ID v_ID para o valor v_SEGMERCADO. v_ID := v_ID + 1: Incrementa o valor de v_ID em 1 a cada iteração do loop.