Você pode declarar várias variáveis ​​em um loop for em C++?

Você pode declarar várias variáveis ​​em um loop for em C++?
Declaração de uma variável, significa identificar um local de memória para o conteúdo variável. Bem, a resposta é sim. Comece considerando o seguinte segmento de código:
int i = 0;
int j = 0;
int k = 0;

Estas são três declarações que podem ser escritas em uma declaração, como:

int i = 0, j = 0, k = 0;

Existe um tipo de dados; As expressões são separadas por vírgulas. Uma declaração termina com um semicolon. Várias variáveis ​​foram declaradas aqui em uma declaração.

Agora, considere as seguintes declarações incrementais:

int i ++;
int j ++;
int k ++;

Essas três declarações podem ser substituídas por uma declaração, como segue:

int i ++, j ++, k ++;

Aqui, há três expressões em uma declaração para um tipo de dados.

Considere também as três declarações condicionais a seguir:

eu < 10;
j < 10;
k < 10;

Essas três declarações, podem ser substituídas por uma declaração, como segue:

eu < 10 && j < 10 && k < 10;

Aqui, três declarações foram combinadas em uma expressão de uma forma especial. Essas expressões não são separadas por vírgulas como nos casos acima, mas são combinados com o lógico e.

Este artigo explica como várias variáveis ​​podem ser declaradas e usadas, em um loop for, com correspondências regulares. Exemplos muito simples são usados ​​para ilustrações.

Conteúdo do artigo

  • Dimensional para loop
  • Bidimensional para loop
  • Tridimensional para loop
  • Vantagem possível
  • Conclusão

Dimensional para loop

loop de enquanto

Um loop de tempo para exibir números de zero a 9, é como no programa a seguir:

#incluir
usando namespace std;
int main ()

int i = 0;
enquanto eu < 10)
cout << i << endl;
i ++;

retornar 0;

A primeira linha do programa inclui a biblioteca iostream para o objeto Cout. A próxima linha do programa é uma declaração. Ele garante que qualquer nome usado seja da biblioteca padrão C ++, a menos que indicado de outra forma.

Na função principal (), existe a declaração de inicialização, do número inteiro, i = 0. Depois, há o loop while, que leva em consideração a declaração de inicialização. A condição de enquanto é (eu < 10), and as long as i is less than 10 (never equal to 10), the cout iostream object in the body of the while-loop displays the value of i. The next statement in the while-loop increments i (adds 1 to the value of i).

A saída é a seguinte, mas exibida verticalmente:

0 1 2 3 4 5 6 7 8 9

Dimensional para loop

O código na função Main () acima é reproduzido, no programa a seguir, como um loop for:

#incluir
usando namespace std;
int main ()

para (int i = 0; i < 10; i++)
cout << i << endl;

retornar 0;

A saída é a mesma que no caso acima. A declaração de inicialização para o código acima é agora a primeira declaração nos parênteses do loop for, seguida por um ponto de vírgula. A condição enquanto o código acima é agora a segunda declaração nos parênteses do loop for, seguida por um ponto de vírgula. A declaração de incremento no corpo do loop while, para o código anterior, agora é a terceira declaração nos parênteses do loop for. Não é seguido por um ponto e vírgula porque é a última declaração nos parênteses. A única declaração no loop for exibe o valor de i.

Bidimensional para loop
Loop de enquanto

O loop for-loop unidimensional acima exibe uma coluna, onde cada célula tem um número, o valor de i. Um loop de tempo, aninhado em outro loop enquanto exibia uma tabela, onde cada célula teria um número (o valor de j nessa posição). O programa a seguir ilustra o seguinte:

#incluir
usando namespace std;
int main ()

int i = 0;
enquanto eu < 5)
int j = 0;
enquanto (j < 5)
cout << j << ";
j ++;

cout << endl;
i ++;

retornar 0;

A saída é:

0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4

A variável I determina as linhas. A variável J determina as colunas. Os valores máximos para i e j são 4 neste código. Nenhum valor de I é impresso. Para cada valor de J, o valor de J é impresso horizontalmente. J é incrementado para imprimir o próximo valor horizontalmente para cada linha.

Existem duas declarações de inicialização: uma para i e outra para J, ambas inicializadas para zero. A declaração de inicialização para J está dentro do loop externo. Dessa forma, J é reinicializado para cada linha (cada linha horizontal). Dessa forma, J pode produzir números de 0 a 4 para cada linha. O valor de I nunca é impresso; Ele apenas indica o número da linha. Eu sou incrementado fora e abaixo do loop aninhado. Eu sou incrementado para os fins da próxima linha.

Telão aninhado

O seguinte loop aninhado produz o mesmo resultado (tabela) que o loop enquanto aninhado acima:

#incluir
usando namespace std;
int main ()

para (int i = 0; i < 5; i++)
for (int j = 0; j < 5; j++)
cout << j << ";

cout << endl;

retornar 0;

Cada parênteses de cada loop têm sua própria declaração de inicialização, sua própria declaração de condição e sua própria declaração de incremento.

Um loop enquanto

A saída da tabela acima pode ser produzida por um loop de enquanto, com uma declaração de inicialização e uma declaração de condição. No entanto, a reinicialização de zero a j e o incremento de I tem que ocorrer em um if-construir. O código a seguir ilustra o seguinte:

#incluir
usando namespace std;
int main ()

int i = 0, j = 0;
enquanto eu < 5 && j <5)
cout << j << ";
j ++;
if (j == 5)
cout << endl;
j = 0;
i ++;


retornar 0;

A saída é a mesma tabela que a acima.

Um loop

A saída da tabela acima pode ser produzida por um loop para uma declaração de inicialização e uma declaração de condição. No entanto, a reinicialização de zero a j e o incremento de I tem que ocorrer em um if-construir. O programa a seguir ilustra o seguinte:

#incluir
usando namespace std;
int main ()

para (int i = 0, j = 0; i < 5 && j <5; j++)
cout << j << ";
if (j == 4)
cout << endl;
j = -1;
i ++;


retornar 0;

A saída é a mesma tabela que a acima. No entanto, aqui, uma vez que J é incrementado no final do loop, nos parênteses, a condição IF é (J == 4), e J é assignado, -1 para cada linha.

O que é espacial aqui é que duas variáveis ​​foram declaradas em um loop for. E assim, várias variáveis ​​podem ser declaradas em um loop for.

Endereço diagonal principal

Em uma mesa quadrada, a diagonal principal é a diagonal da extremidade superior esquerda até a extremidade inferior direita. O programa a seguir exibe as coordenadas da líder diagonal da tabela acima:

#incluir
usando namespace std;
int main ()

para (int i = 0, j = 0; i < 5 && j <5; i++,j++)
cout << i << ',' << j << ";

cout << endl;
retornar 0;

A saída é:

0,0 1,1 2,2 3,3 4,4

Observe que, no programa, duas variáveis ​​foram declaradas nos parênteses do loop for; A condição possui as duas variáveis, relacionadas pelo lógico e; e a declaração de incremento tem as duas variáveis, cada uma incrementada adicionando uma. Sob essa condição, a única declaração no corpo do loop for impressa as coordenadas da diagonal principal.

Tridimensional para loop

Pode ser complicado imprimir todos os valores das células de um cubo. O programa a seguir apenas imprime as coordenadas da diagonal principal de um cubo:

#incluir
usando namespace std;
int main ()

para (int i = 0, j = 0, k = 0; i<5&&j<5&&k<5; i++,j++,k++)
cout << i << ',' << j << ',' << k << ";

cout << endl;
retornar 0;

A saída é:

0,0,0 1,1,1 2,2,2 3,3,3 4,4,4

Observe que a declaração de inicialização possui três variáveis; A declaração de condição tem as três variáveis ​​e a declaração de incremento tem as três variáveis. Existe apenas uma declaração no corpo do loop for.

Vantagem possível

Considere um único loop para exibir todos os valores das células de uma tabela quadrada:
Ter as duas variáveis ​​na declaração de inicialização e na condição não traz nenhuma vantagem na velocidade, em comparação com a situação em que um loop é aninhado.

No entanto, se apenas os valores selecionados na tabela forem acessados, ter as duas variáveis, na declaração de inicialização, na declaração de condição e na declaração de incremento, traria uma vantagem na velocidade; No sentido de que todos os valores não serão acessados, antes de eliminar muitos deles. No programa a seguir, todos os outros pares de coordenadas, na diagonal principal, são impressos:

#incluir
usando namespace std;
int main ()

para (int i = 0, j = 0; i < 10 && j <10; i+=2,j+=2)
cout << i << ',' << j << ";

cout << endl;
retornar 0;

A saída é:

0,0 2,2 4,4 6,6 8,8

Ainda existe apenas uma declaração no loop for. Obter vantagem na velocidade, dessa maneira, envolve a inclusão de lógica seletiva adicional na declaração de condição e/ou na declaração de incremento. As expressões de inicialização na declaração de inicialização podem não precisar ser inicializadas para zero.

No código acima, a declaração de incremento é:

i+= 2, j+= 2

que significa,

i = i+2, j = j+2;

Conclusão

Sim, posso declarar várias variáveis ​​em um loop for. E você também pode agora declarar várias variáveis, em um loop para seguintes: apenas separar as múltiplas variáveis ​​na declaração de inicialização com vírgulas. Não se esqueça de encerrar a declaração completa de inicialização com um semicolon. Se o acesso dos elementos da estrutura precisar ser seletivo, essas variáveis ​​também podem ser usadas, nas declarações de estado e/ou incremento, nos parênteses do loop for, possivelmente com algumas lógicas adicionais.