Mobile App Development · Dart/Flutter
Sete exercícios com for e for-in: contagem, múltiplos, acumuladores, índice em String, número primo e leitura de entrada do usuário.
Exercício
Imprime os números inteiros de 1 a 10 usando o for clássico — o caso mais simples, com número de iterações conhecido com antecedência.
// Exercício: imprimir os números inteiros de 1 a 10 usando o laço 'for'.
// O 'for' é ideal quando o número de iterações é conhecido com antecedência.
void main() {
// Laço de 1 até 10 com incremento unitário.
for (int i = 1; i <= 10; i++) {
// Exibe o valor atual do contador.
print(i);
}
}
Saída esperada
1 2 3 4 5 6 7 8 9 10
Como executar
dart run 10-For/02_Exercicios/codigo_fonte/01_Ex_Imprimir_Numero_de_1_10.dart
Exercício
Percorre uma lista de inteiros com for-in e imprime apenas os números pares, usando o operador módulo (%) para testar a divisibilidade por 2.
// Exercício: percorrer uma lista de inteiros e imprimir apenas os números pares.
// O 'for-in' itera diretamente sobre os elementos sem necessidade de índice.
void main() {
// Lista de inteiros a ser percorrida.
final List<int> numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// Para cada elemento, verifica se é par antes de imprimir.
for (final int numero in numeros) {
// Módulo 0 indica divisibilidade exata por 2.
if (numero % 2 == 0) {
print(numero);
}
}
}
Saída esperada
2 4 6 8 10
Como executar
dart run 10-For/02_Exercicios/codigo_fonte/02_Desafio_For_Lista_Pares.dart
Exercício
Percorre todos os inteiros de 0 a 50 e imprime apenas os múltiplos de 5, usando % para verificar a divisibilidade.
// Exercício: imprimir todos os múltiplos de 5 no intervalo de 0 a 50.
// O operador '%' (módulo) verifica se um número é divisível por outro.
void main() {
// Percorre todos os inteiros de 0 a 50.
for (int i = 0; i <= 50; i++) {
// Imprime apenas os divisíveis por 5.
if (i % 5 == 0) {
print(i);
}
}
}
Saída esperada
0 5 10 15 20 25 30 35 40 45 50
Como executar
dart run 10-For/02_Exercicios/codigo_fonte/02_Ex_Imprimir_multiplos_5_de_0_50.dart
Exercício
Calcula a soma dos 10 primeiros números naturais (1 a 10) usando o padrão de acumulador: uma variável soma que recebe cada valor do laço até formar o total.
// Exercício: calcular a soma dos 10 primeiros números naturais (1 a 10).
// O acumulador 'soma' recebe cada valor do laço até o total ser formado.
void main() {
// Acumulador que armazena a soma parcial a cada iteração.
int soma = 0;
// Percorre os naturais de 1 a 10, somando cada um ao acumulador.
for (int i = 1; i <= 10; i++) {
soma += i;
}
print('A soma dos primeiros 10 numeros naturais e: $soma');
}
Saída esperada
A soma dos primeiros 10 numeros naturais e: 55
Como executar
dart run 10-For/02_Exercicios/codigo_fonte/03_Ex_Calcular_Numeros_Naturais.dart
Exercício
Percorre uma String caractere por caractere usando um índice no for: texto.length dá o total de caracteres e texto[i] acessa a posição i.
// Exercício: percorrer uma String caractere por caractere usando índice 'for'.
// 'texto.length' retorna o total de caracteres; o índice vai de 0 até length - 1.
void main() {
// Texto cujos caracteres serão exibidos individualmente.
const String texto = 'FIAP';
// Acessa cada posição da string pelo índice numérico.
for (int i = 0; i < texto.length; i++) {
// Exibe o caractere na posição 'i'.
print(texto[i]);
}
}
Saída esperada
F I A P
Como executar
dart run 10-For/02_Exercicios/codigo_fonte/04_Ex_Caracter_separadamente.dart
Exercício
Verifica se um número é primo testando divisores de 2 até a raiz quadrada do número (i * i <= numero), o que reduz o custo em comparação a testar todos os divisores até numero - 1.
// Exercício: verificar se um número é primo.
// Algoritmo: testa divisores de 2 até a raiz quadrada do número (i * i <= numero),
// o que reduz o custo em comparação a testar todos os divisores até numero - 1.
// Retorna true se 'numero' for primo, false caso contrário.
bool ehPrimo(int numero) {
// Números menores que 2 não são primos por definição.
if (numero < 2) return false;
// Testa divisores potenciais até a raiz quadrada de 'numero'.
for (int i = 2; i * i <= numero; i++) {
// Encontrou um divisor exato: não é primo.
if (numero % i == 0) return false;
}
// Nenhum divisor encontrado: é primo.
return true;
}
void main() {
// Número a ser testado.
final int numero = 29;
print('$numero ${ehPrimo(numero) ? 'e primo' : 'nao e primo'}');
}
Saída esperada
29 e primo
Como executar
dart run 10-For/02_Exercicios/codigo_fonte/05_Ex_Numero_Primo.dart
Exercício
Lê um número inteiro digitado pelo usuário e calcula a soma de todos os inteiros de 1 até esse número usando for. Como depende de entrada via stdin, a saída varia conforme o que for digitado.
// Exercício: ler um número inteiro fornecido pelo usuário e calcular
// a soma de todos os inteiros de 1 até esse número usando 'for'.
import 'dart:io';
void main() {
stdout.write('Digite um numero inteiro: ');
// Lê a entrada como texto; retorna string vazia se a leitura falhar.
final String entrada = stdin.readLineSync() ?? '';
// Converte para inteiro; retorna null se o texto não for numérico.
final int? n = int.tryParse(entrada);
// Valida: rejeita entradas não numéricas ou menores que 1.
if (n == null || n < 1) {
print('Entrada invalida.');
return;
}
// Acumulador da soma de 1 até n.
int soma = 0;
// Soma todos os inteiros de 1 até o valor informado.
for (int i = 1; i <= n; i++) {
soma += i;
}
print('A soma de 1 ate $n e: $soma');
}
Saída esperada
Depende do valor digitado — não é determinística. Exemplo, se o usuário digitar 5:
Digite um numero inteiro: 5 A soma de 1 ate 5 e: 15
Como executar
dart run 10-For/02_Exercicios/codigo_fonte/06_Ex_Todos_Input.dart