Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Modificar o Comportamento do Laço For em C++ | Laço For
Loops em C++

bookModificar o Comportamento do Laço For em C++

O laço for tradicional em C++ é uma maneira altamente eficiente e expressiva de iterar por um intervalo de valores, mas existem situações em que é necessário ter mais controle sobre o laço. Este capítulo apresentará várias técnicas para modificar e ajustar seus laços for.

Personalização das declarações de inicialização, condição e iteração

Antes de tudo, é importante observar que nenhum dos três componentes dentro da estrutura do laço for é obrigatório. Você pode eliminar cada um deles, resultando no seguinte código:

for.h

for.h

copy
1234
for (;;) { }

Surpreendentemente, isso ainda funciona! Essa construção cria um loop infinito, e o código contido nele será executado indefinidamente enquanto o computador permanecer ligado. Com isso em mente, é possível alcançar qualquer objetivo simplesmente experimentando com o laço for.

Inicialização de mais de uma variável no laço for

Isso pode ser útil quando é necessário percorrer um array tanto do início quanto do fim simultaneamente. Por exemplo, é útil para verificar se uma palavra é um palíndromo.

main.cpp

main.cpp

copy
123456789101112
#include <iostream> int main() { std::string word = "radar"; for (int i = 0, j = word.length() - 1; i < j; ++i, --j) if (word[i] != word[j]) return 0; // Mismatch found std::cout << "The world is palindrome!"; }

É possível inicializar várias variáveis, separadas por vírgulas. Isso permite declarar e inicializar diversas variáveis antes de entrar no loop.

Diferentes formas de utilizar a condição no for loop

É possível utilizar múltiplas condições em um loop for para lidar com cenários complexos, nos quais a execução do loop depende de mais de um fator. Por exemplo, é possível encerrar o loop com base tanto no limite do índice quanto em um sinalizador externo.

main.cpp

main.cpp

copy
1234567891011121314151617181920
#include <iostream> int main() { // Simulated temperature readings (in Celsius) int size = 8; int temperatures[size] = {25, 27, 30, 33, 36, 40, 38, 42}; // Threshold for critical temperature const int criticalTemperature = 40; bool safe = true; // Temperatures until all are processed or a critical temperature is found for (int i = 0; i < size && safe; i++) if (temperatures[i] >= criticalTemperature) safe = false; // Stop loop if (!safe) std::cout << "The critical temperature was reached!"; }

Existem várias maneiras de estruturar a condição em um laço for. Escolha o tipo de condição que melhor se adapta à lógica e aos requisitos do seu programa. Cada abordagem oferece flexibilidade no controle do comportamento do laço.

Utilizando atualizações personalizadas ou múltiplas

Atualizações personalizadas ou múltiplas em um laço for permitem modificar a(s) variável(is) do laço de forma dinâmica ou realizar atualizações complexas além do incremento ou decremento padrão. Essa flexibilidade é especialmente útil em cenários nos quais se deseja controlar o fluxo do laço para pular elementos, percorrer múltiplos intervalos ou lidar com atualizações condicionais.

main.cpp

main.cpp

copy
12345678910
#include <iostream> int main() { int size = 8; int values[size] = {1, 2, 3, 4, 5, 6, 7, 8}; for (int i = 0; i < size; i += 2) std::cout << "Value: " << values[i] << std::endl; }

Você pode usar várias instruções de atualização separadas por vírgulas. Utilizar atualizações personalizadas ou múltiplas permite maior controle sobre as variáveis de controle do loop e adapta o loop às necessidades específicas do seu programa.

question mark

Qual é o propósito da seguinte construção de loop for?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Can you give an example of initializing multiple variables in a for loop?

How do I use multiple conditions in a for loop?

Can you show how to use custom or multiple updates in a for loop?

Awesome!

Completion rate improved to 9.09

bookModificar o Comportamento do Laço For em C++

Deslize para mostrar o menu

O laço for tradicional em C++ é uma maneira altamente eficiente e expressiva de iterar por um intervalo de valores, mas existem situações em que é necessário ter mais controle sobre o laço. Este capítulo apresentará várias técnicas para modificar e ajustar seus laços for.

Personalização das declarações de inicialização, condição e iteração

Antes de tudo, é importante observar que nenhum dos três componentes dentro da estrutura do laço for é obrigatório. Você pode eliminar cada um deles, resultando no seguinte código:

for.h

for.h

copy
1234
for (;;) { }

Surpreendentemente, isso ainda funciona! Essa construção cria um loop infinito, e o código contido nele será executado indefinidamente enquanto o computador permanecer ligado. Com isso em mente, é possível alcançar qualquer objetivo simplesmente experimentando com o laço for.

Inicialização de mais de uma variável no laço for

Isso pode ser útil quando é necessário percorrer um array tanto do início quanto do fim simultaneamente. Por exemplo, é útil para verificar se uma palavra é um palíndromo.

main.cpp

main.cpp

copy
123456789101112
#include <iostream> int main() { std::string word = "radar"; for (int i = 0, j = word.length() - 1; i < j; ++i, --j) if (word[i] != word[j]) return 0; // Mismatch found std::cout << "The world is palindrome!"; }

É possível inicializar várias variáveis, separadas por vírgulas. Isso permite declarar e inicializar diversas variáveis antes de entrar no loop.

Diferentes formas de utilizar a condição no for loop

É possível utilizar múltiplas condições em um loop for para lidar com cenários complexos, nos quais a execução do loop depende de mais de um fator. Por exemplo, é possível encerrar o loop com base tanto no limite do índice quanto em um sinalizador externo.

main.cpp

main.cpp

copy
1234567891011121314151617181920
#include <iostream> int main() { // Simulated temperature readings (in Celsius) int size = 8; int temperatures[size] = {25, 27, 30, 33, 36, 40, 38, 42}; // Threshold for critical temperature const int criticalTemperature = 40; bool safe = true; // Temperatures until all are processed or a critical temperature is found for (int i = 0; i < size && safe; i++) if (temperatures[i] >= criticalTemperature) safe = false; // Stop loop if (!safe) std::cout << "The critical temperature was reached!"; }

Existem várias maneiras de estruturar a condição em um laço for. Escolha o tipo de condição que melhor se adapta à lógica e aos requisitos do seu programa. Cada abordagem oferece flexibilidade no controle do comportamento do laço.

Utilizando atualizações personalizadas ou múltiplas

Atualizações personalizadas ou múltiplas em um laço for permitem modificar a(s) variável(is) do laço de forma dinâmica ou realizar atualizações complexas além do incremento ou decremento padrão. Essa flexibilidade é especialmente útil em cenários nos quais se deseja controlar o fluxo do laço para pular elementos, percorrer múltiplos intervalos ou lidar com atualizações condicionais.

main.cpp

main.cpp

copy
12345678910
#include <iostream> int main() { int size = 8; int values[size] = {1, 2, 3, 4, 5, 6, 7, 8}; for (int i = 0; i < size; i += 2) std::cout << "Value: " << values[i] << std::endl; }

Você pode usar várias instruções de atualização separadas por vírgulas. Utilizar atualizações personalizadas ou múltiplas permite maior controle sobre as variáveis de controle do loop e adapta o loop às necessidades específicas do seu programa.

question mark

Qual é o propósito da seguinte construção de loop for?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 3
some-alt