- Validação de categorias de produtos em um sistema de estoque
import 'dart:io';
void main(){
List<String> categoria = <String>["eletronicos", "alimentos", "vestuario", "livros"];
String? entrada = "";
void categoriaValida(){
print("Digite a categoria do produto ${categoria.toString()}");
entrada = stdin.readLineSync();
if (entrada != null && categoria.contains(entrada)){
print("Categoria valida: $entrada");
} else {
print("Categoria invalida");
categoriaValida();
}
}
categoriaValida();
}
- Validação de tipos de arquivos em um sistema de upload
import 'dart:io';
void main(){
List<String> tiposPermitidos = <String>["pdf", "jpeg", "png", "docx"];
void extensaoValida(){
print("Faça o upload do seu arquivo");
String? arquivo = stdin.readLineSync()!;
String extensao = arquivo.split('.').last;
if (tiposPermitidos.contains(extensao)){
print("Upload feito");
} else {
print("Arquivo inválido, por favor faça upload com as seguintes extensões ${tiposPermitidos.toString()}");
extensaoValida();
}
}
extensaoValida();
}
- Dando uma nova chance no retorno de mês
import 'dart:io';
void main(){
int numero = solicitarNumero();
String mes = acharMes (numero);
print(mes);
}
int solicitarNumero(){ //função que verifica se a entrada é valida e não está vazia
print("Digite um numero de 1 a 12");
String? entrada = stdin.readLineSync();
int? numero;
if(entrada != null && entrada != ""){
numero = int.tryParse(entrada);
} if (numero != null && numero >=1 && numero <=12){
return numero;
} else {
print("Numero invalido. Digite um numero valido");
return solicitarNumero();
}
}
String acharMes (int numero){
switch (numero){
case 1:
return ("Janeiro");
case 2:
return ("Fevereiro");
case 3:
return ("Março");
case 4:
return ("Abril");
case 5:
return ("Maio");
case 6:
return ("Junho");
case 7:
return ("Julho");
case 8:
return ("Agosto");
case 9:
return ("Setembro");
case 10:
return ("Outubro");
case 11:
return ("Novembro");
case 12:
return ("Dezembro");
default:
return ("Não é um mes valido");
}
}
- Criando a função de depósito e fazendo sua validação
import 'dart:io';
void main() {
double saldo = 1000.0; // Saldo inicial em reais
print('Boas-vindas ao seu banco digital!');
print('Seu saldo atual é de: R\$ ${saldo.toStringAsFixed(2)}');
String operacao = escolhaOperacao(); // a variavel operacao recebe o retorno da função escolhaOperacao - deposito, retirada, transferencia, pagamento
double valor = escolheValor(operacao, saldo); // a variavel valor recebe o valor escolhido para a operação, levando em conta se é credito ou debito
double saldoFinal = operacoes(operacao, saldo, valor); // saldo final traz o retorno da conta feita em operacoes, que pega a operação escolhida, o saldo inicial e o valor escolhido
print("Operação realizada.");
print("Seu saldo final é R\$ ${saldoFinal.toStringAsFixed(2)}");
}
double soma(double saldo, double valor){
return (saldo + valor);
}
double subtracao(double saldo, double valor){
return (saldo - valor);
}
double operacoes(String operacao, double saldo, double valor){
switch (operacao) {
case "deposito":
return soma (saldo, valor);
case "retirada":
case "transferencia":
case "pagamento":
return subtracao (saldo, valor);
default:
print("Operação desconhecida");
return saldo;
}
}
String escolhaOperacao(){
List<String> operacoes = <String>["deposito", "retirada", "transferencia", "pagamento"];
print("Digite a operação que deseja realizar: deposito, retirada, transferencia, pagamento");
String? operacao = stdin.readLineSync();
if (operacao != null && operacoes.contains(operacao)){
return operacao;
} else {
print("Operação inválida. Por favor tente de novo");
return escolhaOperacao();
}
}
double escolheValor(String operacao, double saldo) {
print("Digite o valor da operação:");
String? entrada = stdin.readLineSync();
if (entrada != null && entrada.isNotEmpty) {
double? valor = double.tryParse(entrada);
if (valor == null || valor <= 0) {
print("Valor inválido.");
return escolheValor(operacao, saldo);
}
if (operacao != "deposito" && valor > saldo) {
print("Saldo insuficiente.");
return escolheValor(operacao, saldo);
}
return valor;
} else {
print("Entrada inválida.");
return escolheValor(operacao, saldo);
}
}